我有一个.smi文件。 当我用notepad ++打开时,我有:
<font color="#FF8040"><I>- °øµ¿¹ø¿ªÀÌ´Ùº¸´Ï Áö¸í°ú À̸§ÀÌ ¾à°£¾¿ Ʋ¸±¼ö ÀÖ½À´Ï´Ù.-</I></font>
然后我设置字符集&gt;韩语&gt; UEC-KR:
<font color="#FF8040"><I>- 공동번역이다보니 지명과 이름이 약간씩 틀릴수 있습니다. -</I></font>
那么,我能在C#中做些什么呢?我希望当我打开文件时,应用程序可以检测字符集并在richtextbox中显示。 我用过:
System.IO.StreamReader sr = new System.IO.StreamReader(openFile.FileName);
inputText.Text = sr.ReadToEnd();
inputText.SelectAll();
inputText.SelectionFont = new Font("Arial Unicode MS",9,FontStyle.Regular);
输入结果:
<font color="#FF8040"><I>- ���������̴ٺ��� ����� �̸��� �ణ�� Ʋ���� �ֽ��ϴ�. -</I></font>
答案 0 :(得分:1)
您需要告诉StreamReader
在读取文件时使用适当的编码。您可以通过以下方式更改第一行来实现此目的:
var krEncoding = System.Text.Encoding.GetEncoding("euc-kr");
System.IO.StreamReader sr =
new System.IO.StreamReader(openFile.FileName, krEncoding);
这是可能的,因为StreamReader
构造函数有overload,它接受编码作为参数。
答案 1 :(得分:0)
我还没见过任何* .smi,所以我的回答可能是假的,但是:
如果文件是原始的16位unicode
如果文件是UTF-8 / UTF-16
* .smi中的数据可以与文件本身不同地编码
<强> PS。那里没有很多unicode字体,没有一个是完整的!
从更好的(支持更多页面)我只知道: