0

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

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

非常感谢,

4

2 回答 2

1

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

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

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

  • 使用 adb 上传文件,然后删除副本。
于 2013-03-20T09:24:29.630 回答
0

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

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

于 2013-03-20T08:18:35.743 回答