Windows 上的 UTF-8/ISO-8859-1 编码问题 --> Unix
Posted
技术标签:
【中文标题】Windows 上的 UTF-8/ISO-8859-1 编码问题 --> Unix【英文标题】:Problems with UTF-8/ISO-8859-1 encoding on Windows --> Unix 【发布时间】:2012-09-04 19:41:19 【问题描述】:我编写了一个程序来处理瑞典字母å
ä
和ö
。我在一台 Windows 计算机上编写了它,并且在那里一切正常。但是当我尝试在 Unix 中运行该程序时,瑞典字母不显示,并且该程序在处理瑞典字母时不起作用。顺便说一句,它是用java编写的。
有什么想法可以在 Unix 上运行吗?
【问题讨论】:
当您说 unix 时,您的意思是 linux,对吗?你使用什么发行版?您是否为您的发行版正确设置了 utf-8? (这就是我前段时间遇到同样问题时错过的) 是的。发行版是什么意思? “distro”表示“发行版”,如Ubuntu、openSuSE、debian、... 我的程序从一个文本文件中读取并取出单词并在不同的文件中以某种方式组织它们。我对单词进行哈希处理,以便快速访问它们。当我使用该程序时,我给它一个我想在文件中找到的输入。程序对该单词进行哈希处理,但在文件中找不到它。 这里没有足够的信息来帮助您。您确定您甚至有带有这些字符的字体吗?它是控制台程序还是 GUI? 【参考方案1】:你应该使用类似于编码的东西
FileInputStream(file.getAbsolutePath()), fileEncoding)
fileEncodig == "UTF-8"
或其他编码,也可用于添加-Dfile.encoding=UTF-8
系统属性或以编程方式
System.setProperty("file.encoding", fileEncoding);
您可以将相同的编码用于String#getBytes(fileEncoding)
或String
构造函数和getBytes
。使用UTF-8
charset 编码和解码符号的例子:
new String (value.getBytes("ISO-8859-1"),"UTF-8");
我也用它来读取 UTF-8 捆绑资源。
FileOutputStream
也一样
FileOutputStream(file.getAbsolutePath()), fileEncoding)
【讨论】:
谢谢!我们已经尝试过了,但没有任何区别。 @Yvonne 在看到 UTF-8 解码符号之前,您无法有所作为。以上是关于Windows 上的 UTF-8/ISO-8859-1 编码问题 --> Unix的主要内容,如果未能解决你的问题,请参考以下文章
Windows Server 2012 R2 上的 Windows 服务 PlatformNotSupportedException 上的 WCF