台灣最大程式設計社群網站
線上人數
2345
 
會員總數:246497
討論主題:190004
歡迎您免費加入會員
討論區列表 >> C# >> Word檔(內碼是us-ascii)中文亂碼,要轉成其他格式內碼,但都無法成功
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Word檔(內碼是us-ascii)中文亂碼,要轉成其他格式內碼,但都無法成功
價值 : 5 QP  點閱數:403 回應數:2
樓主

查理王
門外漢
0 1
10 1
發送站內信

各位前輩,我有一個資訊系統,中文是設中華人民共和國,系統裡有crystal report報表,每日有些固定報表跑完的結果(日誌帳)也放在系統(副檔名rxx),可供隨時去查。
現在要用程式將這些報表轉出,自動存成word檔到網路磁碟機,我將這些檔案copy到我的電腦,用crystal Reports去打開,中文字卻呈現亂碼(但如果在該系統轉成pdf存檔是OK的)。
我用.net程式先將這些檔案轉成word檔,再試著將內碼轉成UTF8或GB2312或big5(用Encoding.Convert),但都無法成功,我有先去測原始檔案內碼是us-ascii,請問我要如何轉成正確的中文字呢?

範例如下:
政踢 豖遴 -> 現金-退款
陓蚚縐 -> 信用卡

程式碼:
Encoding asciius = Encoding.GetEncoding("us-ascii");
using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (StreamReader sr = new StreamReader(fs, asciius, true))
{
original = sr.ReadToEnd();
sr.Close();
}
fs.Close();
}
byte[] fromBytes = asciius.GetBytes(original);
byte[] toBytes = Encoding.Convert(asciius, Encoding.GetEncoding("UTF-8"), fromBytes);
File.WriteAllBytes(filename, toBytes);

搜尋相關Tags的文章: [ word中文亂碼,UTF8 ] ,
本篇文章發表於2021-06-24 10:58
1樓
回應

Edward
檢舉此回應
Hi 查理王:

以下程式碼是我搜尋到的
可以測試看看


本篇文章回覆於2021-06-29 09:46
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

查理王
檢舉此回應
您好,套用您的程式,但程式執行到這行EncodingGarbled即當掉(沒顯示任何錯誤,只把瀏覽器關閉)
本篇文章回覆於2021-06-30 16:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.