2013-03-20 19 views
0

我正在使用adb push從命令行(從C#桌面應用程序)將Windows中的文件複製到我的Nexus 7。問題是,帶有重音符號的文件由於編碼差異而無法正確複製...ADB PUSH編碼

有什麼方法可以在複製之前設置adb的編碼類型?或者你知道另一種方法來從命令行將文件從我的桌面推送到我的設備嗎?

非常感謝,

+0

我重命名我的文件使用UTF8(「?」出現un窗口,正常...)但是,當我使用然後adb推,它說「文件未找到」,因爲? char的名字... – castrogne 2013-03-20 09:15:52

回答

0

亞行不重新編碼,它只是推二進制內容是文件。在使用adb push之前,您必須使用正確的編碼(UTF-8)創建文件。

編輯:啊,問題不在於包含重音字符但帶有這些字符的文件名的文件。你不能簡單地用一個簡單的名字推文件,然後在設備上重命名它?

1

總之Android使用FAT文件系統。和FAT在文件名中使用UTF-8。 這意味着即使您以某種方式將不是UTF-8的文件名作爲命令行參數傳遞給adb,也不會因爲上述重新調整而確定adb行爲。 一個好的解決辦法是:

  • 讀取文件名並將其更改爲UTF-8投訴的名字。

    byte[] bytes = Encoding.Default.GetBytes(originalPath); 
    newPath= Encoding.UTF8.GetString(bytes); 
    
  • 將文件複製到新生成的名稱。 「如果新名稱不匹配原始」

  • 使用adb上傳文件,然後刪除副本。
相關問題