繁体   English   中英

Java 常量中的特殊拉丁字符为 UTF-8 转义序列

[英]Special LATIN characters as UTF-8 escape sequences in Java constants

我需要检查 Java 中的字符串,它们只包含允许的字符。 我需要为几种不同的语言做这件事。 每种语言都包含一组特殊字符,这些特殊字符被添加到国家字母表中,而不是基本的英文字母表,例如在德语中,你有 ü、ö 等。我需要定义包含这些特殊字符的 Java 常量UTF 转义序列的形式,以便我可以保持我的 Java 文件 ASCII 编码。

有没有办法让我获得这样的常量,例如在某处下载它们或从某个库中获取它们或以某种方式生成它们? 任何想法? 我知道我可以在网上的某个地方找到这些字符,找到每个字符的转义序列并将其放入我的源文件中。 有什么方法可以用更少的努力做到这一点吗?

每个 Unicode 字符都有一个规范名称,可以通过名称查找它们:

StringBuilder sb = new StringBuilder();
sb.appendCodePoint(Character.codePointOf("LATIN SMALL LETTER O WITH DIAERESIS"));
sb.appendCodePoint(Character.codePointOf("LATIN SMALL LETTER U WITH DIAERESIS"));
System.out.println(sb);

Output:

öü

注意将codePointOf的返回值转换为char

char c = (char) Character.codePointOf("LATIN SMALL LETTER U WITH DIAERESIS");

这仅适用于基本多语言平面中的字符(适合单个 UTF-16 代码单元的字符,即代码点小于 65,536)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM