VB.NET - конвертировать Unicode в одном ТБ в Shift-JIS в другом ТБ - PullRequest
0 голосов
/ 11 июня 2010

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

Когда нажата кнопка под надписью «textbox1», она должна конвертировать текст Unicode (предназначенный для японского языка) в Shift-JIS.

Причина, по которой я это делаю, заключается в том, что программное обеспечение VOCALOID2 позволяет вставлять в систему текстов песен только кодировку ANSI и Shift-JIS. У пользователей приложения обычно есть клавиатура, на которой уже можно изменить язык на японский, но он печатает в Unicode.

Как преобразовать текст Unicode в Shift-JIS, если SJIS недоступен в типах System.Text.Encoding?

1 Ответ

0 голосов
/ 11 июня 2010

К счастью, это не , как это работает. Пока вы манипулируете текстом в .NET-программе, включая свойство TextBox.Text, существует только кодировка one , UTF-16. Когда вам нужно работать с внешним миром, будь то файл или функция P / Invoked, , а затем вам необходимо конвертировать между Shift-Jis и UTF-16. Что довольно просто:

        var enc = Encoding.GetEncoding("shift-jis");
        var value = enc.GetBytes("hello world");

Передайте значение "value" любому коду, которому требуется закодированное значение Shift-JIS. Убедитесь, что это не TextBox, он не знает, как отображать байты, он знает только UTF-16.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...