android按钮不显示一些汉字(unicode?)

时间:2015-02-07 01:37:30

标签: android unicode utf-8 android-button

display output
一些汉字字符在按钮上输出为空格。字符串是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

我已经花了好几天的时间来完成这个想法。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

我尝试将字体设置为DroidSansJapanese.ttf,并认为默认字体不支持这些字符,但没有帮助。

是的,看起来U + 233E4和U + 28A1E也是not included by DroidSansJapanese,因为它不包括基本多语言平面以外的任何东西。

包含它们的字体包括Takao Gothic和Ming Li U.