首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android按钮不显示一些kanji (unicode?)

android按钮不显示一些kanji (unicode?)
EN

Stack Overflow用户
提问于 2015-02-07 01:37:29
回答 1查看 261关注 0票数 0

一些汉字作为空格输出在按钮上。弦是utf-8,但我试过utf-16,但没有起作用。我使用button.setText来设置值。我可以做setText,后面跟着getText,看到我得到了相同的字符。字符输出工作在Log.i中找到。我尝试将字体设置为DroidSansJapanese.ttf,并认为默认字体不支持这些字符,这没有帮助。

我认为这可能是一个unicode问题,但不知道从哪里看。

下面的图像显示字符及其代码点。看起来,0xFFFF以上的字符是问题所在。

下面是我如何设置字体:

代码语言:javascript
复制
jFont = Typeface.createFromAsset(
   getActivity().getAssets(), "fonts/DroidSansJapanese.ttf");

下面是执行setText的适配器的代码:

代码语言:javascript
复制
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的编辑输出如下所示:

代码语言:javascript
复制
position=42, s="齩:0x09F69", codepoint=0x00009F69
position=43, s=":0x0233E4", codepoint=0x000233E4
position=44, s=":0x028A1E", codepoint=0x00028A1E

我花了好几天时间在这件事上,没有什么想法了。任何想法都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-07 12:58:06

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

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

有它们的字体包括Takao,哥特式和明Li,U。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28377576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档