ADB PUSH encoding

本文关键字:encoding PUSH ADB | 更新日期: 2023-09-27 18:04:54

我使用adb push从命令行(从c#桌面应用程序)将文件从Windows复制到我的Nexus 7。问题是,由于编码差异,带有口音的文件将无法正确复制…

在复制之前是否有办法设置adb的编码类型?或者你知道用命令行把文件从桌面推送到设备的另一种方法吗?

谢谢,

ADB PUSH encoding

总之Android使用FAT文件系统。FAT在文件名中使用UTF-8。这意味着,即使您设法将文件名(不是UTF-8)作为命令行参数以某种方式传递给adb,由于上述还原,adb行为也无法确定。一个好的解决方法是:

  • 读取文件名并将其更改为UTF-8投诉名称。

    byte[] bytes = Encoding.Default.GetBytes(originalPath);
    newPath= Encoding.UTF8.GetString(bytes);
    
  • 将文件复制到新生成的名称。"如果新名称与原名称不匹配"

  • 使用adb上传文件,然后删除副本。

adb不重新编码文件,它只是按原样推送二进制内容。在使用adb push之前,您必须以正确的编码(UTF-8)创建文件。

编辑:啊,问题不在于包含重音字符的文件,而在于包含这些字符的文件名。你不能简单地用一个简单的名字推送文件,然后在设备上重命名它吗?