Чтение символов Unicode в моем приложении - PullRequest
0 голосов
/ 12 марта 2012

У меня есть приложение, которое при запуске будет правильно отображать все символы в кодировке Unicode (ОК, это сделано так).Эти данные будут храниться в файле базы данных.И я пишу приложение, чтобы прочитать их все, но оно не может быть прочитано правильно, как ожидалось.Хорошие языки, такие как японский, китайский, корейский, только такие языки, как вьетнамский, немецкий голландский и т. Д., Любой из которых с точками или штрихами поверх символов вообще не может быть отображен кратко.Спасибо за любую помощь.

[ ОБНОВЛЕНИЕ ]

Ну, спасибо, я не думаю, что мне нужно больше устанавливать языки Востока и Азии, так как онивсе уже в моей компьютерной системе.Только они не могут отображаться в моем созданном приложении, но они прекрасно отображаются в приложении, которое использует базу данных для их хранения и извлечения.Например, давным-давно, когда мессенджер Yahoo был одноязычным, только английский язык мог отображаться, но позже он был добавлен с другими библиотеками для правильного отображения других символов из других языков.Настройки для чтения других языков больше не нужны для работы с DLL.Предположим, что текущий мессенджер может читать английский, японский, китайский через разные входы с клавиатуры, и мое приложение под названием messengerreader должно читать эти входы.Мессенджер отлично работает с этими входами, в то время как мой мессенджер не может определить некоторые языки, как я упоминал выше.Что я должен или могу сделать сейчас, чтобы заставить их всех работать?Я благодарен за любую помощь.

[ ОБНОВЛЕНИЕ еще раз ]

Хорошо, простой пример, который я могу сейчас придумать для своего приложения, который мне нужно прочитать в имени пользователя, которое отображается правильно как "Ле Сао "в оригинальной заявке.Мое приложение отображает некоторые странные символы после 'L'.

public struct Username
{
   public string username;
}

IEnumerable<Username> Getuser(string tableName)
{
   Datatable dt=ReadDB(tableName);
   List<Username> lst=new List<Username>();

   lst.Add(new Username(){username=dt.Rows[0]['username']});
   return lst.ToList();
}

1 Ответ

0 голосов
/ 13 марта 2012

Можете ли вы вывести шестнадцатеричный код для строки имени пользователя, добавить метод, подобный этому, в

public string UserNameAsHexDump  {
        get
        {

            char[] ca = username.ToCharArray();

            string output = "";
            foreach (char c in ca)
            {
                output += string.Format("{0} - {1:X4}\r\n", c, (uint)c);
            }

            return output;

        }
    }

, скопировать результат и дать нам посмотреть необработанные данные, образец "Lê Sao" дает:

L - 004C
ê - 00EA
  - 0020
S - 0053
a - 0061
o - 006F

из этого СО, вероятно, может дать вам ответ

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