簡體   English   中英

使用C#轉換Unicode字符

[英]Convert unicode characters with c#

我有一個客戶,要求我們編寫一個ac#應用程序,該應用程序從其數據庫中獲取數據並將其輸出到.csv文件。 到現在為止還挺好。

該數據庫包含一些unicode字符,當客戶端使用Excel打開.csv時,這些字符看起來“很奇怪”。 例如:x0096看起來像一個A,上面是胡蘿卜,旁邊是歐元貨幣符號,當客戶認為它看起來應該像破折號時。

因此,我被要求使這些字符看起來“不奇怪”。

我已經為每個奇怪的字符編寫了代碼(我喜歡下面的12行)。

input = input.Replace((char)weirdCharacter, (char)normalCharacter);

必須有更好的方法。

生成HTML文件時,我遇到了同樣的問題。 對我來說,解決方案是更改輸出文件的編碼。

StreamWriter swHTMLPage = 
                new System.IO.StreamWriter(OutputFileName, false, Encoding.UTF8);

添加Encoding.UTF8參數后,字符開始正確顯示。 我不知道這是否可以應用到您的解決方案中,因為涉及到Excel,但是我敢打賭它可以。

正如文森特·詹姆斯(Vincent James)所說的那樣,如果這是一個編碼問題,那么解決此問題的理想方法是在對值進行解碼/編碼時僅使用正確的編碼,但是如果這樣做仍然不起作用...

我認為這很簡單。 你怎么看?:

Dictionary<char, char> substitutions = new Dictionary<char, char> {
  {'\0x0096', 'F'}, {'\0x0101', 'O'}, {'\0x0121', 'O'}, ...
};

foreach(KeyValuePair<char, char> pair in substitutions)
{
   input.Replace(pair.Key, pair.Value);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM