一些汉字字符在按钮上输出为空格。字符串是utf-8但我尝试过utf-16但是没有用。我正在使用button.setText来设置值。我可以使用setText然后使用getText,看看我得到了相同的字符。字符输出在Log.i中找到。我尝试将字体设置为DroidSansJapanese.ttf,并认为默认字体不支持这些字符,但没有帮助。
我认为这可能是一个unicode问题,但不知道从这里看哪里。
下图显示了字符及其代码点。看起来像0xFFFF以上的字符是问题。
这是我设置字体的方式:
jFont = Typeface.createFromAsset(
getActivity().getAssets(), "fonts/DroidSansJapanese.ttf");
以下是执行setText的适配器的代码:
public View getView(int position, View convertView, ViewGroup parent) {
Button button = (Button) convertView;
KanjiInfo ki = getItem(position);
if (ki.isChanged() || null == button) {
button = new Button(context);
button.setTypeface(jFont);
}
String s = ki.kanjiChar();
String buttonText = String.format("%s:0x0%X", s, s.codePointAt(0));
button.setText(buttonText);
s = button.getText().toString();
Log.i(logTag, String.format("position=%d, s=\"%s\", codepoint=0x%08X",
position, s, s.codePointAt(0)));
...
Log.i的编辑输出如下:
position=42, s="齩:0x09F69", codepoint=0x00009F69
position=43, s=":0x0233E4", codepoint=0x000233E4
position=44, s=":0x028A1E", codepoint=0x00028A1E
我已经花了好几天的时间来完成这个想法。任何想法都将不胜感激。
答案 0 :(得分:1)
我尝试将字体设置为DroidSansJapanese.ttf,并认为默认字体不支持这些字符,但没有帮助。
是的,看起来U + 233E4和U + 28A1E也是not included by DroidSansJapanese,因为它不包括基本多语言平面以外的任何东西。
包含它们的字体包括Takao Gothic和Ming Li U.