我正在尝试用Java建立一个中文抽认卡程序来帮助我自己学习中文。我使用的是intelliJ IDEA 10,其基本过程是我的程序将读取保存在本地机器上的文件来生成抽认卡。该文件是使用java中的file类编写的。在记事本中打开时,它可以正确显示所有字符。
当我在IDE中运行它时,我能够显示中文字符和拼音字符(基本上是带有重音标记的元音)。但是,当我构建一个jar文件并从那里启动程序时,它不再显示特殊字符,最后显示了一堆奇怪的符号。
有什么想法可以解释为什么会出现这种情况,以及如何修复它?
我有一个Java字符串,我在操作它时遇到了麻烦。我有一个字符串s,它的值是丞(我随机选择的一个中文字符,我不会说中文)。如果我打电话给
String t = new String(s.getBytes());
if (s.equals(t))
System.out.println("String unchanged");
else
System.out.println("String changed");
然后,我得到字符串更改的结果。有人知道这是怎么回事吗?
我有一堆中文字符,比方说DB或XML文件。它们使用UTF-8编码存储在那里。现在,我需要在我的Java代码中获取这些信息。我使用DOM parser读取XML,并将中文字符存储在String literal中。它稍后会在JSP Page中显示,并在System out console中打印。它工作得很好。我不知道为什么?
根据我的理解,Java应该使用适当的编码(在本例中为UTF-8)来存储中文字符。但是,当我检查JVM使用的默认编码时,它不是UTF-8 or 16。这是一些Cp1522(不确定这是否是正确的,我记不起正确的值,对不起)。
所以它应该不能打印值,对吗?您能帮我了解一下为什么这样
The **compare-on-binary way** is **NOT semantically-correct**
例如,当您想要对不同编码的字符串进行严格的字符串比较时,二进制比较方式就会出现错误。以下测试用例说明了原因:
在本例中,我希望将字段'北京 '中的字符串城市替换为string '北京111',但将字符串'北京'保持不变,因此我编写了以下sql:
SELECT CASE WHEN BINARY `城市` = BINARY '北京 ' THEN '北京111' ELSE `城市` END
FROM
当我在php文件中输出英文字符串时,这个应用程序可以通过从输入流获取吐司来显示消息。但是,当我在php文件中输出中文字符串时,我执行了以下代码来转换为UTF-8,但是我无法获得中文字符串。
java:
InputStream IS = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(IS,"ISO-8859-1"));
StringBuilder result = new StringBuilder();
St