通过Tomcat服务器读取意大利语字符时出错

时间:2013-05-30 16:09:54

标签: java tomcat5.5

我正在java应用程序中通过Apache的CSVReader读取csv文件。这个csv包含一些意大利字符,如'è'。当我在我的本地tomcat服务器上运行此应用程序时,它正在正确读取这些字符。但是当我在远程Tomcat服务器上部署相同的应用程序时。然后它将这些字符读作'?'。

注意:在两种情况下,部署的应用程序都相同,CSV文件相同,从同一系统访问应用程序。只有区别在于本地计算机上运行,​​而其他计算机位于远程计算机上。

我正在通过InputStreamreader读取此文件。任何人都知道可能是什么问题?

2 个答案:

答案 0 :(得分:1)

您似乎错过了指定编码CSV文件的字符编码。

http://docs.oracle.com/javase/6/docs/api/java/io/InputStreamReader.html

可能在InputStreamReader的构造函数中指定它可能会解决您的问题。

如果你没有指定一个,它使用默认的字符编码,我担心这可能会改变,具体取决于java虚拟机,如下所示:

http://docs.oracle.com/javase/1.5.0/docs/api/java/nio/charset/Charset.html#defaultCharset()

答案 1 :(得分:0)

比较区域设置。

在操作系统级别上,例如在Linux上,这是:

  

$ echo $ LANG   de_DE.UTF-8

在Java中,检查系统属性中的file.encoding:

  

的file.encoding = [UTF-8]

如果您不想依赖操作系统中的设置,请在代码中明确传递charset。