Непонятные символы вместо русских букв.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Непонятные символы вместо русских букв.

Сообщение Volosnya 14 июл 2018, 15:19

Нужно отгадать предмет по картинке. Рандомные квадраты забиваются символами от слова которые нужно отгадать , а остальные рандомно должны забиваться другими символами.
На скрине нужно собрать слово машина, и буквы для этого слова отображаются нормально, а вот остальные вместо русских символов непонятные кракозябры. Использовал таблицу ascii. Пробовал менять кодировку на utf 8 не помогло. Если использовать английские символы с 65 по 91 то они отображаются нормально.
Синтаксис:
Используется csharp
public class GameManager : MonoBehaviour {

    public Character[] AllCharacters;
    private static List<Character> unDoneLevel;

    private Character currentLevel;

    [HideInInspector]
    public Image characterImage;


    public List<GameObject> AllSymbols = new List<GameObject>();

    private void Start()
    {
        if(unDoneLevel == null || unDoneLevel.Count == 0)
        {
            unDoneLevel = AllCharacters.ToList<Character>();
        }

        SetLevel();
        Debug.Log(currentLevel.name);
    }

    void SetLevel()
    {
        int currLevel = 0;
        currentLevel = unDoneLevel[currLevel];

        characterImage.sprite = currentLevel.image;
        foreach (char ch in currentLevel.name.ToUpper().ToArray())
        {
            int rnd = Random.Range(0, AllSymbols.Count);

            while(AllSymbols[rnd].GetComponent<Text>().text != "-")
            {
                rnd = Random.Range(0, AllSymbols.Count);
            }

            AllSymbols[rnd].GetComponent<Text>().text = ch.ToString();
        }

        foreach (GameObject go in AllSymbols)
        {
            if (go.GetComponent<Text>().text == "-")
                go.GetComponent<Text>().text = ((char)Random.Range(192, 223)).ToString();
        }

        unDoneLevel.RemoveAt(currLevel);
    }


Изображение
Volosnya
UNец
 
Сообщения: 33
Зарегистрирован: 22 окт 2017, 09:35

Re: Непонятные символы вместо русских букв.

Сообщение 1max1 14 июл 2018, 15:50

На шарпе коды русских символов совершенно отличаются от плюсовых, так что вот это вот:
Синтаксис:
Используется csharp
go.GetComponent<Text>().text = ((char)Random.Range(192, 223)).ToString();

Нужно заменить на:
Синтаксис:
Используется csharp
go.GetComponent<Text>().text = ((char)Random.Range(1072, 1104)).ToString();


Ах этот шарп, всё не как у людей, даже char 2 байта весит :ymparty:
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Непонятные символы вместо русских букв.

Сообщение Woolf 14 июл 2018, 16:10

Ах этот шарп, всё не как у людей, даже char 2 байта весит :ymparty:

Наверное, потому, что UTF ?

А, вообще, лучше просто создать табличку всех русских букв и выбирать из неё, а не напрямую из чарсета. В этом случае проще будет локализовать под любой язык, хоть под арабский.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Непонятные символы вместо русских букв.

Сообщение 1max1 14 июл 2018, 16:22

Woolf писал(а):Наверное, потому, что UTF ?

Изображение
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26