使用UTF-8正确编码 - java

时间:2018-05-15 08:42:03

标签: java encoding utf-8 character-encoding iso-8859-1

我无法正确地将以下字符串写入文件。特别是字符“œ”。问题出现在我的本地计算机(Windows 7)和服务器(Linux)

字符串:“Cœursd'hangehautsgrillées”

  1. 是否有效(œ gets displays correctly, while the apostrophe get translated into a question mark):

    Files.write(path, content.getBytes(StandardCharsets.ISO_8859_1));
    
  2. 不起作用(result in file):

    Files.write(path, content.getBytes(StandardCharsets.UTF_8));
    
  3. 根据this question的第一个答案,UTF-8也应该能够正确编码。有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:4)

你的第二种方法有效

String content = "Cœurs d’artichauts grillées";
Path path = Paths.get("out.txt");
Files.write(path, content.getBytes(Charset.forName("UTF-8")));

正在生成out.txt文件:

Cœurs d’artichauts grillées

您使用的编辑器很可能无法正确显示内容。您可能必须强制编辑器使用UTF-8编码以及显示œ和其他UTF-8字符的字体。 Notepad ++或IntelliJ IDEA开箱即用。