java 自动处理unicode编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 自动处理unicode编码相关的知识,希望对你有一定的参考价值。

public void test()
String str2="\4EA7\54C1\4E3A";
System.out.println(str2);

上面这段测试代码,我想直接打印"\4EA7\54C1\4E3A"这个字符串,但是java会自动把\4和\54自动转换为其他字符。
本来我想替换'\'为'\u'都不行,求解如何解决这个问题下面是它的打印结果

感觉除非是对方修改,不然没法处理,反斜杠开头的,应该是被识别成了8进制的数字了 参考技术A java是编程语言里比较难学的一门,如果有心从事编程方向的工作,最好到专业机构多实践,更贴近市场,这样更有利于将来的发展。 参考技术B

//代码

public static void main(final String[] args) 

final String str1="\\\\4EA7\\\\54C1\\\\4E3A";

final String str2="\\4EA7\\54C1\\4E3A";

System.out.println(str1);

System.out.println("---------------");

System.out.println(str2);

//输出

//明白?

参考技术C

这样写就不会了 String str2="\\\\4EA7\\\\54C1\\\\4E3A";

追问

这个我知道,但是别人传过来的数据就是这样,我没法改啊。它始终要把\4和\45自动变成特殊字符,我想替换\都替换不成功。就是"\4EA7\54C1\4E3A",这个字符串不能改,然后把"\4EA7\54C1\4E3A"替换成"\u4EA7\u54C1\u4E3A"

追答

把所有特殊的数字前缀都罗列出来,然后替换

追问

老哥,不能改"\4EA7\54C1\4E3A",主要是这个字符串是别人传过来的,后续还会有其他类似的字符串,不可能手动一个一个的改呀

老哥,不能改"\4EA7\54C1\4E3A",主要是这个字符串是别人传过来的,后续还会有其他类似的字符串,不可能手动一个一个的改呀

追答

您好,并没有改变传过来的字符

以上是关于java 自动处理unicode编码的主要内容,如果未能解决你的问题,请参考以下文章

QT unicode编码问题

如何判断一个字符串是不是是unicode编码?

java如何把以unicode编码形式的字符串变成编码前的形式

java中如何获得一个字符的unicode编码

字符类型与Unicode 编码

Java中 中文是怎么编码显示的?