【发布时间】:2015-07-26 05:27:13
【问题描述】:
我得到了一些带有格式字符串的 JSON 数据,像这样
₽35
但是,我注意到在 Nexus 5 (Lollipop) 上它可以正确显示,但在 HTC one mini 和三星 GT-I9505 等其他手机上,它会显示一个空白字符。
我试图研究这个问题,除了在 XML 布局文件中,确保该行存在之外,我找不到其他解决方案
<?xml version="1.0" encoding="utf-8"?>
但我还是有同样的问题
请帮忙
2015 年 5 月 15 日编辑
加载自定义字体 NotoSans(请注意,我知道这会泄漏内存,但这只是一个快速测试)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView ruble = (TextView)findViewById(R.id.ruble);
Typeface myFont = Typeface.createFromAsset(getAssets(),"fonts/NotoSans-Regular.ttf");
ruble.setTypeface(myFont);
}
strings.xml 中定义的俄罗斯卢布符号(注意我都试过了)
<string name="rubleSymbolJava">\u20BD</string>
<string name="rubleSymbolHTML">₽</string>
<string name="rubleSymbolHTMLHex">₽</string>
同样的问题,在旧手机上显示为方形,但在 Android 5.0 上运行,但没有更早的版本。
已解决请看我的回答
【问题讨论】:
-
您在问题中所做的复制/粘贴似乎弄乱了您的货币符号。至少,它没有显示为the Russian ruble sign。这些设备上使用的字体可能缺少此 Unicode 字形。
-
@DerGolem 我使用的是默认字体。没有习俗。它只是一个标准按钮。
-
@DerGolem 我刚刚做了一个测试。我使用了自定义字体 Roboto-Light.ttf,它没有该字形,但仅在 Nexus 5 上显示良好
-
@DerGolem,我会试试有它的字体
-
@CommonsWare。我刚刚尝试了根据 CommonsWare 提供的链接支持它的 Helvetica。它现在显示一个空白方块
标签: android