【问题标题】:Java Conversion table convert É to EJava转换表将É转换为E
【发布时间】:2016-01-14 15:27:59
【问题描述】:

是否有 java 函数/代码示例可以帮助我将一些 unicode 字符转换为其可读对应?

例如:

原始转换
¿         ?
À          A              
Á         A             
         A              
à         A              
Ä          A                br>Å          A              A              
Ç          C              
Ø         O              
Ñ         N              
×          。
Π           我             
Ï          我                
Р      /kbd>D              
Ñ          N             

或者你会怎么做?

【问题讨论】:

  • 我只想指出,那些“原始”Unicode 字符实际上是可读字符(但可能不是英文)。
  • “设计模式”是什么意思?如果你想保存它们,你可以使用像 Map 这样的数据结构或具有原始和转换属性的类。
  • 我认为由你来决定什么是“可读对应物”,而这不是函数可以做的。
  • 创建一个哈希表来映射您的翻译,使用它为给定的输入字符选择所需的输出字符。
  • 也许这不是单词的最佳选择,我想要实现的是将大量字符转换为其他字符的最有效方法...假设是 1000 个字母的字典

标签: java escaping special-characters


【解决方案1】:

使用Normalizer 类,但它不会为您完成全部工作(虽然它会做很多事情,所以您可以单独处理极端情况)。重音和其他变音符号可以通过以下方式去除(将字符分解为基本字符和变音符号,然后删除变音符号)。

String foo = Normalizer.normalize("¿ÀÁÀÃÄÅÆÇØÑ×ÎÏÐÑ", Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");

之后,您仍然需要处理未转换的字符 (¿ÆØ×Ð)。

从here借来的代码sn-p。

【讨论】:

    猜你喜欢
    • 2018-11-04
    • 2023-03-10
    • 2010-12-25
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    相关资源
    最近更新 更多