在 android (java) 中用希伯来语写入文件

write to file in hebrew in android (java)

我在做一个联系人项目 我复制所有联系人并将它们写入 csv 文件,然后将它们上传到 firebase。

当我打开这个文件(在任何设备上)时,我看到用希伯来字母写的联系人看起来很奇怪。

这是它的外观:

这是我的代码:

  public void generateNoteOnSD(Context context, String sFileName, String sBody) throws Exception {
    try {
        File root = new File(Environment.getExternalStorageDirectory(), "ProjectContacts");
        if (!root.exists()) {
            root.mkdirs();
        }
        File gpxfile = new File(root, sFileName);
        FileWriter writer = new FileWriter(gpxfile);
        OutputStreamWriter writer =new FileWriter(gpxfile);
        writer.append(sBody);//
        writer.flush();
        writer.close();
        Toast.makeText(context, "Saved", Toast.LENGTH_SHORT).show();
        //Toast.makeText(context, "Start upload", Toast.LENGTH_LONG).show();
        //UploadCsvFile(gpxfile);

    } catch (IOException e) {
        e.printStackTrace();
    }
}

s正文包含希伯来字母

我希望有人能帮助我。谢谢。

您的 CSV 文件可能不是 UTF-8 格式,因此您可能需要按照 Alastair 的建议进行操作,或者使用 Google Sheets 或 OpenOffice 之类的工具打开它,或者使用像 Notepad++ 这样的简单文本编辑器或 Sublime Text 3 以找出您的文件使用的编码,然后使用 this Stack Overflow post.

中概述的过程将 CSV 导入 Excel

当然,您也可以在文件中添加 UTF-8 BOM,如 this post. 中所述,然后 Excel 应该会自动识别 UTF-8 编码并正确显示任何特殊字符。

您的数据文件是UTF-8。如果您只是 "open" 文件,Excel 不会读取 UTF-8。你应该做的是:

  • 在 excel
  • 中打开一个新文件
  • 单击左上角的单元格(如果您 excel 使用希伯来语,则单击右上角的单元格)
  • 单击功能区中的“数据”选项卡,然后选择 "From Text"
  • 在导入向导中:
    • Select "Delmited"
    • 确保 select "UTF-8" 编码 ("File Origin")
    • 下一个
    • Select "Comma"
    • 完成