[英]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.