【发布时间】:2023-02-07 23:35:43
【问题描述】:
我必须从文件中读取一个字符串并在我的应用程序的文本字段中显示相应的 unicode 表示形式。
例如,我从文件中读取字符串“e13a”,我想在文本字段中显示相应的“\ue13a”字符。
有没有办法获得所需的行为?
我已经尝试直接在文件中转义字符串,但我总是获得原始字符串而不是 unicode 表示
【问题讨论】:
标签: java javafx unicode unicode-normalization
我必须从文件中读取一个字符串并在我的应用程序的文本字段中显示相应的 unicode 表示形式。
例如,我从文件中读取字符串“e13a”,我想在文本字段中显示相应的“\ue13a”字符。
有没有办法获得所需的行为?
我已经尝试直接在文件中转义字符串,但我总是获得原始字符串而不是 unicode 表示
【问题讨论】:
标签: java javafx unicode unicode-normalization
经过大量尝试和搜索后,我发布了这个问题。 发布后不久,我发现了一个比我预期的更简单的解决方案:
转换后的字符串是:
转换后的字符串 = String.valueOf((char) Integer.parseInt(unicodeString,16));
其中“unicodeString”是我从文件中读取的字符串。
【讨论】:
Character.toString( Integer.parseInt( "e13a" , 16 ) )
将您的输入字符串解析为 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 在物理上无法表示大多数字符。
要处理单个字符,请使用如上所示的代码点整数。
【讨论】: