JavaFX字符串到unicode实体的转换[重复]

axzmvihb  于 2023-02-11  发布在  Java
关注(0)|答案(2)|浏览(93)
    • 此问题在此处已有答案**:

(13个答案)
3天前关闭。
我必须从文件中读取一个字符串,并在应用程序的Text字段中显示相应的unicode表示。
例如,我从文件中读取字符串"e13a",并希望在"文本"字段中显示相应的"\ue13a"字符。
是否有办法获得理想的行为?
我已经尝试过在文件中直接转义字符串,但总是获得原始字符串而不是unicode表示

ogsagwnx

ogsagwnx1#

TL;医生

Character.toString( Integer.parseInt( "e13a" , 16 ) )

请参见运行at Ideone.com的代码。

代码点

将输入字符串解析为hexadecimal数字,基数为16。转换为十进制数字,基数为10。
这个数字代表一个code point,这个数字永久地分配给Unicode中定义的144,000多个字符中的每一个。码位的范围从零到一百万多一点,其中大部分都是未分配的。

String input = "e13a" ; 
int codePoint = Integer.parseInt( input , 16 ) ;

示例化一个String对象,该对象的内容是由该码位标识的字符。

String output = Character.toString( codePoint ) ;

避免char

char类型从Java 2开始就基本上被打破了,从Java 5开始就被继承了。作为一个16位值,char在物理上无法表示大多数字符。
要使用单个字符,请使用上面所示的代码点整数。

nfs0ujit

nfs0ujit2#

经过大量的尝试和搜索,我发布了这个问题。发布后不久,我发现了一个比我预期的更琐碎的解决方案:
转换后的字符串为:

String converted = String.valueOf((char) Integer.parseInt(unicodeString,16));

其中“unicodeString”是我从文件中读取的字符串。

相关问题