2012-03-12 43 views
0

我有一個應用程序,運行時將正確顯示所有Unicode編碼的字符(確定它是這樣)。這些數據將被存儲在數據庫文件中。而且我編寫了一個應用程序來讀取所有這些應用程序,但無法按預期正確讀取它。日語,漢語,韓語等語言都很好,只有像越南語,德語荷蘭語等語言,其中任何一個字符頂部的點或筆劃都不能簡潔地顯示出來。感謝您的任何幫助。將Unicode編碼的字符讀入我的應用程序

[UPDATE]

嗯謝謝你,我不認爲我需要再東和亞洲語言來安裝,因爲他們都是在我的電腦系統了。只有它們無法在我創建的應用程序中顯示,但在使用數據庫存儲和檢索它們的應用程序中顯示得很好。例如,很久以前,當yahoo messenger是單語言時,只能顯示英文,但後來添加了其他dll以正確顯示來自其他語言的其他字符。閱讀其他語言的設置不再需要處理dll。假設當前的Messenger可以通過鍵盤的不同輸入來閱讀英文,日文,中文,我的稱爲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(); 
} 
+0

哪一種統一的? UTF-8? UTF-16 LE/BE? UTF832? – 2012-03-12 08:56:10

+2

你在哪個操作系統上?您可能需要安裝對東亞語言的支持。 – 2012-03-12 08:56:53

+0

我更新以更好地清理。 – Hoger 2012-03-12 09:08:38

回答

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 - 004C 
ê - 00EA 
    - 0020 
S - 0053 
a - 0061 
o - 006F 

從SO或許可以給你一個答案