我有包含奇怪的UTF字符的字符串...我该如何处理?
例如è= \&#232 ...
所以我有
String str = "Pel\&\#232" ;
String correct str2 =??? ; // i'd like to have "Pelè"
然后我有很多这种奇怪的字符,我真的不知道如何处理......
另一个例子:“J。Ho \ř ej \š”
有人可以帮忙吗?
非常感谢你的回答 我正在阅读一个大文本文件,从我无法更改的网站下载。 在文件本身中,人的名字就像那样保存。不是文件的编码。 我也不能手动完成,因为我有300个这个问题的名字。
另一个例子:
在文本文件中,该人的姓名是“Constantin S \â rbu”,应该是Sîrbu
我被困了
编辑***我解决了创建一个手动功能,将HTML值与unicode联系起来......花了一段时间但它有效。
答案 0 :(得分:1)
我认为你可以把è放在字符串本身。就像是:
String s = "Pelè";
答案 1 :(得分:1)
Java Unicode字符看起来像\uXXXX
XXXX正好是四位十六进制数字,没有终止;或任何需要的东西。
Java需要十六进制的Unicode,但你的232是基数10.此外,Java总是需要四个十六进制数字。由于232 denary等于E8十六进制,因此在Java字符串中给出è= \u00E8
:
System.out.println("Pel\u00E8 was a great footballer.");
答案 2 :(得分:0)
只需将源文件的编码设置为UTF-8(这应该在编辑器的首选项中完成)。然后只需使用String str = "Pelè"
。
答案 3 :(得分:0)
您说您无法更改输入文件,但是如何使用您想要的文本生成中间文件呢?
perl -pe 's/\\&#(\d+)/ sprintf("\\u%04X", $1) /ge' inputfile >intermediate