java – 多个Unicode阻止错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 多个Unicode阻止错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2620字,纯文字阅读大概需要4分钟。
内容图文
![java – 多个Unicode阻止错误](/upload/InfoBanner/zyjiaocheng/767/e5c456f071424390ba96a97c1380c68d.jpg)
所以我一直在努力帮助我完成一些数学和显示工作,一切都运行良好,但对于控制台输出,我需要能够显示Unicode上标和下标.我最初使用以下函数设置上标:
public static String getBase( int num ){
String uniStr = "\\u207";
String numStr = Integer.toString(num);
String res = "";
for( int i = 0; i < numStr.length(); i++ ){
String s = uniStr + numStr.charAt(i);
char c = (char) Integer.parseInt( s.substring(2), 16 );
res += c;
}
return res;
}
这在一定程度上工作正常,但在使用以下调用进行调试时:
System.out.println(Unicode.getBase(1234567890));
我得到了输出:
??????????
由于1,2和3的上标在Latin1-Supplement unicode块中具有远远不同的unicode ID,而不是与其他字符在上标/下标块中.所以我添加了一个switch语句,试图专门处理这3个,导致:
public static String getBase( int num ){
String uniStr = "\\u207";
String numStr = Integer.toString(num);
String res = "";
for( int i = 0; i < numStr.length(); i++ ){
String s = "";
switch(numStr.charAt(i))
{
case '1':
s = "\\u00B9";
break;
case '2':
s = "\\u00B2";
break;
case '3':
s = "\\u00B3";
break;
default:
s = uniStr + numStr.charAt(i);
}
char c = (char) Integer.parseInt( s.substring(2), 16 );
res += c;
}
return res;
}
但现在我得到了输出:
123???????
除了现在只有1,2和3显示在控制台中的事实,4-0都有无效的字符框,如:
123???????
我知道交换机工作的事实,正如1,2和3所证明的那样都正确显示,并且其他字符的字符串解析也可以工作,但这仍然会发生.对于我的生活,我无法找到解决方案甚至是理由.如果我使用一个Unicode块中的字符,它是否也试图从该范围中获取所有其他字符,如果是这样,我可以做些什么呢?这似乎是我能想到的唯一可能的原因,否则我很好,真正难倒.任何和所有的帮助将非常感激.
附:我将Eclipse中的运行配置设置为UTF-8,并支持所有这些字符
解决方法:
对于任何好奇的人来说,“L?uV?nhPhúc”是正确的,因为它是一个问题,Windows控制台在unicode方面相当……不友好.肯定有温度修复,但没有什么特别令人愉快的.
第一个我发现感谢挖掘他的第二个评论中提供的链接,并继续通过链接狂欢的方式蠕动我的方式.
在这个answer by erickson(基于this的“Edward Grech”)中,解释了你可以将一个名为JAVA_TOOL_OPTIONS的环境变量设置为java -Dfile.encoding = UTF-8 … com.x.Mainin以获取Eclipse如果您只打算在本地运行它并且不需要构建要共享的项目,则控制台正常工作.不理想,但它的工作原理.但是不支持,所以你冒一些风险.
第二个稍微用户友好,发现here,“蜘蛛”的回答.这也使用-Dfile,但是在命令行中而不是将其设置为环境变量,这意味着您可以创建一个整洁的小批处理文件并使用命令chcp 65001将Windows控制台的默认代码页设置为65001(Unicode).
C:\>chcp 65001
C:\>java -jar -Dfile.encoding=UTF-8 path/to/your/runnable/jar
^控制台输入,引自“蜘蛛”.这基本上是你修改并添加到用于在cmd中运行jar的run.bat的内容.
第三个是在this page,由“McDowell”发布,位于最底层
Printing characters as UTF-8
此方法涉及操作控制台以作为文件句柄工作,并具有一些方便的代码片段.
内容总结
以上是互联网集市为您收集整理的java – 多个Unicode阻止错误全部内容,希望文章能够帮你解决java – 多个Unicode阻止错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。