Я создаю языковую систему для моего проекта, в которой вы можете легко добавить {language}.json
в lang-folder
, и программа включает в себя язык.
На данный момент у меня есть немецкий и английский sh как json
файлы с именами en-us.json
и de-de.json
соответственно. Когда я добавил тестовый файл с именем fr-fr.json
для французского языка, я столкнулся с проблемой, когда при обычном Encoding.Default
символы é ó ú
показывались как é
. Например, предложение «Le fichier Excel est créé automatiquement:» вместо этого выглядит как «Le fichier Excel est crééà © automatiquement:».
Когда я изменил кодировку на Encoding.UTF8
, французский язык отображается правильно, но затем немецкие символы äöü
были заменены на �. Таким образом, предложение «Wählen S ie d ie Excel» теперь читается как «W�hlen S ie d ie Excel».
Я пробовал это с for
l oop:
var encoding = System.Text.Encoding.Default;
for (int i = 1; i <= 2; i++)
{
switch (i)
{
case 1:
encoding = System.Text.Encoding.UTF8;
break;
case 2:
encoding = System.Text.Encoding.Unicode;
break;
default:
encoding = System.Text.Encoding.Default;
break;
}
// Below I try to create an object of the JSON
…
}
Но это не решило мою проблему, поскольку for
l oop предназначено для таких символов, как китайские логограммы, где JsonConvert
имеет проблемы, если не в Unicode.
Я не хочу говорить «если язык французский, кодируйте в UTF8; если это китайский, используйте Unicode; et c». поскольку все языки могут быть необязательными и, следовательно, вам не нужно иметь fr-fr.json
. Но если вы, например, создаете ru-ru.json
, вам снова нужен Unicode.
Есть ли способ определения наилучшей кодировки для текста? И, во-вторых, есть ли кодировка, которая может дать мне и äöü
, и éóúá…
, поэтому мне не нужно вручную изменять ее для каждого неисправного языка?