我的CSV出口有问题。
我创建了如下所示的头文件:
/**
* @param builder
*/
private void createEntete(StringBuilder builder) {
List<String> entetes = new ArrayList<String>();
entetes.add("Date Sélectionnée");
entetes.add("Nom / Prénom des Agents");
entetes.add("Entité des Agents");
entetes.add("Créneaux Mains d'Oeuvre ou de la Tournée");
entetes.add("N° BDT ou Tournée");
entetes.add("Rubrique du BDT");
entetes.add("Type du BDT");
entetes.add("Objet du BDT ou Intitulé de la Disponibilité RH");
entetes.add("Compte-rendu du BDT");
entetes.add("Commune");
entetes.add("Durée du BDT, Tournée ou de l'Activité");
entetes.add("Durée du Dépassement");
entetes.add("Motif du Dépassement");
for (String valeur : entetes) {
ajoutDonnee(valeur, builder);
}
}我用的是UTF-8。
特殊字符在我的出口中编码很差。我有c而不是é。
发布于 2013-12-12 11:43:38
您还没有显示导出/写入数据的代码。
在这段代码中,您可以设置一个合适的编码,例如UTF-8 (尽管示例文本将与CP1252一起工作)。
请注意,必须将读取输出数据的内容设置为使用相同的编码。
因此,你的数据可能实际上写得很好,但当你读它的时候看上去是不对的。
例如,尝试执行以下代码:
public static void main(String[] args) throws IOException {
Writer writer = new OutputStreamWriter(new FileOutputStream("out_default.txt"));
writer.write("N° BDT ou Tournée");
writer.close();
writer = new OutputStreamWriter(new FileOutputStream("out_utf8.txt"), "UTF-8");
writer.write("N° BDT ou Tournée");
writer.close();
}现在,在打开文件时,尝试打开带有和不带匹配编码集的输出文件。
我的Eclipse默认为CP1252编码。
如果打开out_default.txt文件,我会看到以下内容:
N° BDT ou Tournée如果打开out_utf8.txt文件,我会看到以下内容:
N° BDT ou Tournée但是,如果我将编辑器的编码设置为UTF8,那么在out_utf8.txt中我会看到以下内容:
N° BDT ou Tournée发布于 2013-12-12 11:50:09
注意,在Unicode中,重音字符(例如é)有两种可能的表示形式:
U+00E9 lower case latin letter E with acute
U+0065 U+0301 lower case latin letter E, non spacing diacritical mark acute请注意,您的IDE或您使用的任何编辑器都可以选择第二种表示,这将导致另一种UTF-8表示。( @tripleee的反馈表明,事实并非如此,尽管这种情况仍有可能发生。)
https://stackoverflow.com/questions/20542104
复制相似问题