2012-03-12 2 views
0

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

[UPDATE]

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

[UPDATE снова]

Хорошо, простой пример я могу думать прямо сейчас на моем заявлении, что мне нужно прочитать имя пользователя, которое отображается правильно, как «Lê Сао» в исходном приложении. Мое приложение отображает некоторые нечетные символы после «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(); 
} 
+0

Какой вид Юникода? UTF-8? UTF-16 LE/BE? UTF832? –

+2

На какой ОС вы работаете? Возможно, вам потребуется установить поддержку восточно-азиатских языков. –

+0

Я обновляю, чтобы очистить лучше. – Hoger

ответ

0

Вы можете выливать шестигранные для Логин строки, добавить метод, как это к

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ê Сан» образец дает :

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

от SO, вероятно, может дать вам ответ

Смежные вопросы