2015-08-18 2 views
0

У меня возникла проблема, что я не могу отображать специальные символы, такие как «ß, ö, ä, ü» в своем приложении.отображение специального символа правильно

Результат таков: enter image description here

Или так:

В Android Studio я не получаю сообщение об ошибке или предупреждение, и я использую windows-1251 кодирование.

В Gradle я добавил эту строку: compileOptions.encoding = 'windows-1251'

Он должен быть немецким кодированием.

Как это исправить?

я на самом деле могу изменить специальные символы, такие как «ß» из предопределенных строк с Html.fromHtml(unicode of the special character) как Html.fromHtml ("&#223")

Но что, если не предопределенная строка содержит специальный символ? Я попытался просто заменить специальный символ, как это:

String neuer_String = get_street_adress.replace ("ß", Html.fromHtml ("&#223")) ; 
straße.setText ("Stra" + Html.fromHtml ("&#223") + "e: " + neuer_String); 

Но это не работает, потому что строка FriedhofstraÃe, например, должен быть Friedhofstraße. Таким образом, в строке нет символа «ß».

Я также попытался изменить шрифт с Typeface но исключением: «родная гарнитура не может быть сделан»

+3

Одна из возможных причин заключается в том, что шрифты вашего устройства Android не поддерживают символы. – alijandro

+1

Попробуйте использовать кодировку UTF-8. –

ответ

1

Это, вероятно, потому что шрифт в устройстве. , как вы можете решить это путем кодирования Typeface из рабочего шрифта, который вы проверили. (Например, в Word, и т.д.)

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/theNameOfTheFont.ttf"); 

Не забудьте поместить код в папку шрифтов в активах. Если у вас его нет, создайте его.

Использование кодировки UTF-8 «может» решить вашу проблему.

Приветствия из Ирана

Габриэль

+0

Спасибо. См. Мой отредактированный пост – user3603935

1

Настоятельно рекомендуется использовать кодировку UTF-8.

С кодировкой UTF-8 вы можете легко использовать значение unicode в файле string.xml. Здесь a Link to XML character Entities List.

Например для ß использовать <string name="text szlig">text &#223;</string>

Орельен

+0

Спасибо. Я пробовал его с кодировкой UTF-8. Ничего не изменилось. Поскольку у меня не было много строк в xml, мне пришлось делать это программно. Поэтому я использовал 'Html.fromHtml (« & # 223 »)', чтобы показать букву «ß», например. Но это работает только для определенных строк. Как заменить все специальные символы из не предопределенной строки? – user3603935

+0

Где у вас эти строки? с сервера или входа пользователя? –

1

Перейти к настройкам Android Studio. На вкладке «Кодирование файлов» все форматируется как UTF-8.

Если проблема по-прежнему сохраняется, проблема возникает в шрифте, который вы используете, поскольку он может не поддерживать специальные символы.

Надеюсь, это поможет.

Edit:

Я нашел решение вашей проблемы, проверить его:

Вы можете сохранить все ваши строки со специальными символами в вашем strings.xml как:

<resources> 

    <string name="street">Straße</string> 

</resources> 

Затем загрузите их в код:

String street = getResources().getString(R.string.street); 

Вы можете попробовать другие немецкие персонажи. Надеюсь, это сработает для вас!

+0

Спасибо. См. Мой отредактированный пост – user3603935

+0

@ user3603935 Пожалуйста, попробуйте отредактированный ответ. –

Смежные вопросы