我有一個包含阿拉伯文和英文單詞/字母/數字的文件。我正在嘗試使用Here中的代碼來打印文件。當我用記事本打開文件時,我看到所有有趣和不可打印的字符。當我保存相同的文件爲統一碼在另存爲...文件菜單(記事本),並選擇Unicode,文件顯示正確(我看到阿拉伯文字母等)。閱讀包含阿拉伯文的文件
當我在notepad++
打開相同的文件正確顯示的文件是唯一的選擇
菜單 - > Encoding->字符SET->阿拉伯語
在C#中,我試圖逐行讀取文件中的行,並使用
ev.Graphics.DrawString(line, printFont, Brushes.Red, leftMargin, yPos, _sf);
其中line
是從文件中的行打印出來。當文件保存在正確的編碼中時,一切都打印出來。但是,當我們有編碼問題,我們得到一堆鑽石,問號等
這裏有一些方法(來自各種來源),我試圖用正確的編碼打開文件(請讓我知道,如果其中之一應該工作,我會再試一次):
嘗試1
var arabic = Encoding.GetEncoding(1252);
var bytes = arabic.GetBytes(line);
line = arabic.GetString(bytes);`
嘗試2
streamToPrint = new StreamReader(this.filepath,System.Text.Encoding.UTF8,true);
嘗試3
byte[] utf8Bytes = Encoding.UTF8.GetBytes(line);
line = Encoding.Unicode.GetString(utf8Bytes);`
他們都沒有工作。有人可以向我展示我必須對Here代碼進行哪些更改,以便它能讀取文件並將其打印出來?
GetEncoding(1252)不能正確。嘗試1256,864,720。或者發回文件,你不需要它。 –
@HansPassant謝謝。我會試一試並回報 – Zuzlx
@HansPassant 1256(不是1252)是解決方案。如果你提供了答案,那將是「接受答案」。再次感謝。 – Zuzlx