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

时间:2018-04-21 20:05:24

标签: java android file utf hebrew

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

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

这看起来如何: enter image description here

这是我的代码:

  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();
    }
}

sBody包含希伯来字母

我希望有人可以帮助我。感谢。

2 个答案:

答案 0 :(得分:0)

您的CSV可能不是UTF-8,因此您可能希望按照Alastair的建议进行操作,或者在Google表格或OpenOffice中打开它,或使用简单的文本编辑器(如Notepad ++或Sublime Text 3)查找输出您的文件使用的编码,然后使用this Stack Overflow post中列出的过程将CSV导入Excel。

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

答案 1 :(得分:0)

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

  • 在excel中打开一个新文件
  • 点击左上角的单元格(如果你出色的是希伯来语,则点击右上角)
  • 单击功能区中的“数据”选项卡,然后选择“从文本”
  • 在导入向导中:
    • 选择“Delmited”
    • 确保选择“UTF-8”编码(“文件来源”)
    • 下一步
    • 选择“逗号”
    • 完成

Encoding Selection Image