Арабский текст Unity из файла JSON - PullRequest
0 голосов
/ 04 июня 2018

Моя проблема в том, что когда я получаю, например, слово "سلام" из файла JSON, вывод будет "????", но если я получу, например, "Мир" из того же JSONфайл, вывод будет "Мир".

Эта игра, которую я использую (я получаю это из этого учебника Unity ):

private void LoadGameData()
{
    // Path.Combine combines strings into a file path
    // Application.StreamingAssets points to Assets/StreamingAssets in the Editor, and the StreamingAssets folder in a build
    string filePath = Path.Combine(Application.streamingAssetsPath, gameDataFileName);

    if (File.Exists(filePath))
    {
        // Read the json from the file into a string
        string dataAsJson = File.ReadAllText(filePath);
        // Pass the json to JsonUtility, and tell it to create a GameData object from it
        GameData loadedData = JsonUtility.FromJson<GameData>(dataAsJson);

        // Retrieve the allRoundData property of loadedData
        allRoundData = loadedData.al_asallRoundDataela;
    }
    else
    {
        Debug.LogError("Cannot load game data!");
    }
}

Может кто-нибудьпомогите мне?

1 Ответ

0 голосов
/ 04 июня 2018

Вероятно, это связано с несовпадением кодировки .Используйте перегрузку ReadAllText , которая позволяет указать правильную кодировку, используемую при чтении файла.

Перегрузка по умолчанию будет предполагать UTF-8 , если только она не может обнаружить UTF-32. Любая другая кодировка будет проходить неправильно.

Я думаю, правильный код:

var arabic = Encoding.GetEncoding(1256);
 File.ReadAllText(filePath,arabic);
...