我有一个包含特殊字符的xml文件。 例如:
<string name="test_text">"test¹, test², test⁶, test⁷ "</string>
当我使用指令通过字符串:
((TextView) view.finViewdById(R.id.test)).setText(R.string.test_text);
输出结果如下:
测试¹,测试²,测试,测试
我无法显示特殊字符:⁶,⁷。
有人能帮我解决这个问题吗?
谢谢!
我刚刚使用了两个选项进行了测试:
Log.d("TEST", getString(R.string.test_text));
Toast.makeText(this, getString(R.string.test_text), Toast.LENGTH_LONG).show();
test¹,test²,test,test
,而在 Logcat 中字符串正常显示为test¹,test²,test⁶,test⁷
,因此看起来你定义字符串资源的方式是正确的。我的猜测是,用于 UI 的默认字体没有提供这些字符(⁶
和 ⁷
)。您可以尝试使用 assets 中的自定义字体,并确保它支持所需字符。((TextView) findViewById(R.id.test)).setText(getString(R.string.test_text, "UTF-8"));
你在 XML 文件中添加了头部吗?
<?xml version="1.0" encoding="utf-8"?>
DejaVuSans.ttf
。只需将它添加到您项目的assets
文件夹中,并像这样使用它:tv.setTypeface(Typeface.createFromAsset(getResources().getAssets(), "DejaVuSans.ttf"));
,其中tv
是您的 TextView。 - Vladimir