Java的:土耳其编码的Mac / Windows的

我有不同的机器上土耳其特殊字符的问题。 下面的代码:

String turkish = "ğüşçĞÜŞÇı"; String test1 = new String(turkish.getBytes()); String test2 = new String(turkish.getBytes("UTF-8")); String test3 = new String(turkish.getBytes("UTF-8"), "UTF-8"); System.out.println(test1); System.out.println(test2); System.out.println(test3);

在Mac上的三根弦是一样的原始字符串。 在Windows计算机上的三条线(印地与Netbeans 6.7控制台):

?ü?ç?Ü?Ç? ğüşçĞÜŞÇı ?ü?ç?Ü?Ç?

我不明白的问题。

--------------解决方案-------------

String test1 = new String(turkish.getBytes());

你走的是Unicode字符串包括土耳其字符,并把它变成使用的默认编码字节(使用默认编码通常是错误的)。 你再把这些字节,并进行解码,从而返回到一个字符串,使用默认的编码了。 其结果是,你已经取得了什么(除了失去那些不适合在默认编码的任何字符); 你是否已经把一个字符串通过编码/解码周期有什么下面没有任何影响 System.out.println(test1)做,因为这仍然打印字符串,而不是字节。

String test2 = new String(turkish.getBytes("UTF-8"));

编码为UTF-8,然后解码使用默认的编码。 在Mac的默认编码是UTF-8所以这什么也不做。 在Windows中默认的编码是从来没有UTF-8这样的结果是错误的字符。

String test3 = new String(turkish.getBytes("UTF-8"), "UTF-8");

难道一无所获。

要写入字符串到stdout,而不是默认的编码不同的编码,你想创建一个编码器,像new OutputStreamWriter(System.out, "cp1252")并发送字符串内容的。

然而,在这种情况下,它看起来像控制台使用Windows代码页1252西欧(+1 ATorres)。 没有编码不一致的问题在这里可言,所以你将不能够通过重新编码字符串来解决吧!

默认编码CP1252匹配控制台的编码,它只是CP1252不包含土耳其字符ğşĞŞı的。 你可以看到其他角色üçÜÇ来通过就好了。 除非你能重新配置为使用不同的编码,它包含所有你想要的字符控制台,没有办法,你将能够输出这些字符。

想必对土耳其的Windows安装后,默认代码页将被cp1254代替,你会得到你所期望的字符(但其他的字符不工作)。 您可以通过更改“语言用于非Unicode程序”中的区域和语言选项控制面板程序设置进行测试。

遗憾的是没有Windows区域设置使用UTF-8作为默认代码页。 把非ASCII输出到与标准输入输出流功能控制台是不是这真的可靠的。 有一个Win32 API中直接写的Unicode到控制台,但遗憾的是没有什么用的。

不要依赖在控制台上,或在默认的平台编码。 始终指定这样的方法调用的字符编码getBytes和String构造以一个字节数组,如果你想检查一个字符串的内容,打印出每个字符的Unicode值。

我也建议要么限制你的源代码使用ASCII(和为\ uXXXX非ASCII字符进行编码) 明确指定的字符编码,当你编译。

现在,更大的问题是你想解决?

您可能要处理的默认编码不同的设置。

java -Dfile.encoding=utf-8

java -Dfile.encoding=something else

或者,你可能只是看到了Mac的终端窗口工作在UTF-8和Windows DOS 不以UTF-8工作的事实。

按飞碟双向先生,你有第三种可能的问题,这是你正在试图嵌入UTF-8字符的源代码。 根据不同的编译器选项,你可能会或可能不会得到你想要有什么。 放在一个属性此数据文件,或者使用带有\ U逃逸。

最后,也是每个飞碟双向先生,永远,永远调用零参数的GetBytes()。

如果你正在使用AspectJ编译器不要忘记设置它的编码设置为UTF-8。 我一直在努力寻找这几个小时。

分类:java的 时间:2012-01-01 人气:0
本文关键词: java的,编码,土耳其
分享到:

相关文章

  • 为什么Java安全编码重要? 2012-01-30

    我无法理解为什么Java安全编码是非常重要的. 例如,为什么它很重要声明变量私有? 我的意思是,我得到它将使不可能从类的外部访问这些变量,但我可以简单地反编译的类来获取价值. 同样,定义一个类为final将使其无法继承此类. 当将继承一个类是危险的安全性? 同样地,如果有必要,我可以反编译的原班并与任何恶意代码我想重新实现它. 该问题来了,当应用程序是"信任"的用户? 而且,人们便可以滥用这种信任不知何故? 基本上我正在寻找的是一个很好的例子,为什么安全编码规则应该得到遵守. ----

  • 与国际名称检索的MS Access列从Java(编码) 2013-03-15

    我需要从一些旧的Access数据库导入数据. 我跑了一些数据库文件中的代码,并且一切正常. 现在,我用另一个尝试过了,相同的代码无法正常工作. 这似乎是与字符编码,虽然我没有指定任何(和不知道在哪里做). Double age = resultSet.getDouble("âge"); 适用于第一个数据库文件,给出了一个SQLException"列未找到"另一之一. 对有问题的数据库,ResultSet.getMetaData得到().getColumnName(3

  • 我在执行搜索,当我把没有在搜索框中这必须保持同一页上会是什么对于Java脚本编码 2013-06-03

    我在执行搜索,当我在搜索框放在什么这个一定要保持同一页上会是怎样的Java脚本编码的. 我只是在创建Java脚本函数返回false,如果字符串是按键点击空它不工作. --------------解决方案------------- 当你的文字是没有意义的,我必须猜你想说的话. 你想,如果字段为空搜索表单不提交和用户点击搜索 在表格属性您使用的onsubmit <form action="/" method="post" onsubmit="return

  • 网页中的Java字符串编码转换 2012-04-15

    我有一个编码(通过其头)的网页作为WIN-1255 一个Java程序创建的自动嵌入在网页中的文本字符串. 的问题是,原来的字符串进行编码的UTF-8,这样就产生了一个页胡言乱语文本字段. 不幸的是,我不能改变网页的编码 - 它需要由客户适当性制度. 有任何想法吗? 更新: 我创建的页面是需要被设置为WIN-1255,示出从另一进料被编码以UTF-8取信息的RSS提要. 第二次更新: 感谢所有的答复. 我已经成功地转换日线,然而,废话. 问题是,XML编码应除了标题编码来设置. 亚当 ------

  • Java的编码日本 2012-04-23

    我们的软件有创造不同的语言的JAR文件,日本我们使用的编码SJIS中调用native2asci的脚本. 这个工作一个日本版本尝试最后一次,但现在似乎只能在某些情况下工作. 例如在下面的对话框中的编码似乎只在标题栏中的工作: 任何人有什么可能导致这个什么想法? 难道这个问题涉及到Java中的变化? --------------解决方案------------- 你通过什么用native2ascii通过? 只是为了确保你正在使用的native2ascii -encoding SHIFT_JIS,对不

  • 在Java中编码问题 2012-05-14

    我有一个包含两个ASCII和Unicode字符的CSV文件. 说"ÅÔÉA". 我不知道生根粉此文件的编码格式,但是当我在记事本打开它,它显示"ANSI"作为自己的编码标准. 我在UTF-8编码格式读取CSV这些内容. FR =新的InputStreamReader(新的FileInputStream(文件名),"UTF-8"); 但是当我将其存储在数据库这些特殊字符,除了"A",是存放不当. 人物获得加密 我希望所有的字符被

  • 如何解码使用Java UTF-8编码字符串? 2012-05-29

    其实我遇到的字符串在邮件UTF-8编码格式. 我希望它解码. 我用Java mimeutility.decode文本. 不过,这并不正确解码. 举例字符串 =?UTF-8?B'0J / RgNC40LLQtdGC?==?UTF-8?B'0JfQtNGA0LDQstGB0YLQstGD0LnRgtC1?= 当我用 MimeUtility.decodeText("=?UTF-8 2 B 4 0J / RgNC40LLQtdGC?==?utf-8 2 B 4 0JfQtNGA0LDQstGB0YLQs

  • 在Java中编码网址查询参数 2012-07-22

    一个人如何编码的查询参数去Java中的网址是什么? 我知道,这似乎是一个明显并且已经问到的问题. 有两个微妙之处我不知道的: 如果空格在URL为"+"或"%20"编码? 在Chrome中,如果我输入"http://google.com/foo=?bar我"铬改变它与20%进行编码 是否有必要/正确的编码冒号":"作为%3B? Chrome不. 笔记: java.net.URLEncoder.encode似乎并没有工作,这似乎是

  • 在Java UTF编码 2012-08-14

    我需要一个消息请求进行编码并写入到文件中. 目前我使用的URLEncoder.encode()方法编码. 但它不给预期的结果在法国和荷兰的特殊字符. 我曾试过用URLEncoder.encode("msg", "UTF-8") also. 例: 原消息:倒入gérer您的评分GSM 经过编码:倒入摹RER您的评分GSM? 任何一个可以告诉我,这方法我可以用这个目的? --------------解决方案------------- URL编码是不正确的做法,以保持UT

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.531 (s). 10 q(s)