строка — отображение и хранение японских символов

Итак, я пытаюсь использовать C ++ и Windows Forms для создания приложения, которое поможет мне изучать японский язык (на данный момент только хирагана и, возможно, катакана). Цель состоит в том, чтобы иметь возможность создать программу, в которой пользователь выбирает наборы символов, которые он хочет использовать (от A до O, от KA до KO и т. Д.), И либо свободно просматривает карты, либо программа проверяет их на наличие символов. , В целях отладки у меня в настоящее время есть кнопка View, установленная для вывода 5 значений в 5 различных текстовых полях — римское произношение, соответствующий символ, его положение в массиве, в котором хранятся все символы, и логическое значение.

Моя проблема заключается в том, что все символы отображаются как «?», И я получаю несколько предупреждений при компиляции. Пример этого предупреждения:

1> c: \ users \ cameron \ documents \ visual studio 2010 \ projects \ japanesecards \ japanesecards \ Form1.h (218): предупреждение C4566: символ, представленный именем универсального символа ‘\ u3093’, не может быть представлен в текущем коде страница (1252)

Это отображается 46 раз, по 1 для каждого японского символа в массиве. Строка объявления массива:

std::string hiraList[5][11][2];

Пример вставки пары Romanji-Hiragana:

hiraCheck[0][0][0] = "A";
hiraCheck[0][0][1] = "あ";

Наконец, Hiragana вставляется в текстовое поле, используя следующий код:

System::String^ displayText = gcnew String(hiraList[x][y][1].c_str());
textBox5 -> Text = displayText;

По сути, учитывая все это, у меня вопрос: как мне заставить мою форму правильно отображать японские символы в текстовом поле?

2

Решение

Хорошо! Я немного поэкспериментировал и поэкспериментировал с wchar_t и нашел решение.

Сначала я сократил массив hiraList до двумерного массива и переместил символы Hiragana в собственный массив, определенный следующим образом:

wchar_t hiraChar[5][11];

И добавленные значения примерно так:

hiraChar[0][0] = L'あ';

Затем я перешел к коду кнопки «Просмотр» и внес несколько изменений:

Удалил метод объявления и заполнения переменной displayText

Обновлена ​​строка кода, которая присваивает textBox5 свое текстовое значение для чтения из hiraChar [x] [y]

Строка нового кода была вставлена ​​ниже:

textBox5 -> Text = hiraChar[x][y].ToString();

По сути, теперь программа создает три переменные для хираганы — одну для контроля флажков, одну для хранения значений романдзи и одну для хранения символов хираганы. Когда установлен хотя бы один флажок и нажата кнопка «Просмотр», в текстовые поля выводятся пять вещей: символ, его позиция в массиве (x и y — отдельные поля), его эквивалент романдзи и значение «True» который был использован ранее в разработке для целей отладки.

0

Другие решения


По вопросам рекламы [email protected]