我遇到了问题,我无法在我的应用中显示像'ß,ö,ä,ü'这样的特殊字符。
或者像这样:
在Android Studio
我没有收到任何错误或警告,我正在使用windows-1251
编码。
在gradle中我添加了这一行:compileOptions.encoding = 'windows-1251'
它应该是德语编码。
如何解决这个问题?
我实际上可以使用Html.fromHtml( unicode of the special character)
Html.fromHtml ( "ß" )
预定义的字符串更改“ß”等特殊字符,如 String neuer_String = get_street_adress.replace ( "ß", Html.fromHtml ( "ß" ) ) ;
straße.setText ( "Stra" + Html.fromHtml ( "ß" ) + "e: " + neuer_String);
但是如果非预定义的String包含特殊字符会怎么样?我试图简单地替换像这样的特殊字符:
Typeface
但这不起作用,因为例如字符串FriedhofstraÃe应该是Friedhofstraße。所以字符串中没有字符'ß'。
我还尝试使用show processes from all users
更改字体,但抛出异常:“无法创建本机字体”
答案 0 :(得分:1)
这可能是设备中字体的原因。 你可以解决这个问题的方法是用你测试过的工作字体编写一个字体(例如Word等)
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/theNameOfTheFont.ttf");
请记住将代码放在资源中的fonts文件夹中。如果您没有,请创建它。
使用UTF-8编码“可能”解决您的问题。
来自伊朗的欢呼声
加布里埃尔
答案 1 :(得分:1)
强烈建议使用UTF-8编码。
使用UTF-8编码,您可以轻松地在string.xml中使用unicode值。 这里是a Link to XML character Entities List。
例如,使用<string name="text szlig">text ß</string>
的Aurelien
答案 2 :(得分:1)
转到Android Studio的设置。在“文件编码”选项卡中,将所有内容都格式化为UTF-8。
如果问题仍然存在,则问题出在您使用的字体中,因为它可能不支持特殊字符。
希望它有所帮助。
修改强>
我找到了解决问题的方法,请查看:
您可以在strings.xml中使用特殊字符保存所有字符串,如:
<resources>
<string name="street">Straße</string>
</resources>
然后用以下代码检索它们:
String street = getResources().getString(R.string.street);
你绝对可以尝试其他德国人物。希望对你有用!