【问题标题】:How to combine unicode characters?如何组合unicode字符?
【发布时间】:2012-03-14 18:11:01
【问题描述】:

假设我有一个字符“a”,我需要将它与一个十六进制值“030c”形式的符号 (̌) 结合起来。

您认为将它们结合起来的最佳方式是什么?

附注 谢谢,“a\u030c”在logcat中确实给出了â,但在android本身上,它只显示一个空白方块。有没有办法在不让用户安装额外字体的情况下修复它?

【问题讨论】:

  • 我猜你需要一个查找表来查找带有符号组合的字符。因为没有确定的方法来获得'a' + '"' = 'ä'

标签: java android unicode


【解决方案1】:
"a\u030c" or "\u01ce", the latter being the a-caron ǎ.

【讨论】:

  • 谢谢,非常有趣的是,android 确实用 "\u01ce" 给出了 "ǎ" ,是的,用 "a\u030c" 给出了一个空白方块。
  • 使用的字体可能错过了 U+030C,即组合变音符号。一般来说,你可以用 java.text.Normalizer 在这两种形式之间进行转换。
  • Android 字体都没有组合 caron (U+030C) 但包含字母 a 和 caron (U+01CE)。后者以及一般的预组合字符通常比组合变音符号更有效。它们更经常出现在字体中,并且往往会产生更好的排版效果(由排版师设计的字形与通过算法生成的基本字母和变音符号的组合)。
【解决方案2】:

如果你的意思是字符串字面量,那么

String str = "a\u030c";

【讨论】:

  • 是的,似乎有效!谢谢!附言哎呀,它确实出现在 LogCat 中,但在 android 上就像一个空的正方形......
【解决方案3】:

您不应该对自己的映射表进行硬编码。

你需要的是这个:http://developer.android.com/reference/java/text/Normalizer.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 2012-04-16
    • 2021-12-07
    • 1970-01-01
    • 2013-05-27
    相关资源
    最近更新 更多