1

这是打开文件的代码:

private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Title = "Please Select A Text File Or A Word File To Open";
            openFileDialog1.InitialDirectory = "c:\\";
            openFileDialog1.FileName = null;
            openFileDialog1.Filter = "Text Or Word|*.txt;*.doc;*.docx";
            openFileDialog1.FilterIndex = 1;
            openFileDialog1.RestoreDirectory = true;
            DialogResult result1 = openFileDialog1.ShowDialog();
            string file1 = openFileDialog1.FileName;
            if (result1 == DialogResult.OK)
            {
                string s = File.ReadAllText(file1);
                textBox1.Text = s;
            }
        }

这是文本文件的源内容:

שיעור ראשון : יצירת פרוייקט חדש:
-----------------------------

New> Android > Android Application Project

Application Name > שם האפליקציה כפי שהמשתמשים יראו אותה.

Project Name > שם הפרוייקט כפי שיופיע ב Eclipse ושם הספרייה.

这就是我在文本框中得到的:

����� ����� : ����� ������� ���:
-----------------------------

New> Android > Android Application Project

Application Name > �� ��������� ��� ��������� ���� ����.

Project Name > �� �������� ��� ������ � Eclipse ��� �������.

Package Name > ���� ����� �� ����� ���� ����� ������� ����� ������ : ExtractLightning ��� ����.

Minimum Required SDK > ������ ������ ����� �� �������� ���������� ��� ����� ������ �� � API LEVEL.

Target SDK > ������ ������ ����� �� ������ ������� ������ �� ��������� ���. ���� ����� �� ��������� ��� �� ������ ������ 
4

3 回答 3

2

您需要将编码更改为Windows-1255代码页(或其他代码页,如果您知道的话)。

Encoding enc = Encoding.GetEncoding("Windows-1255");
string s = File.ReadAllText(file1, enc);
于 2013-07-03T09:20:15.667 回答
2

使用File.ReadAllText支持指定编码的重载。

Joel 的文章“每个软件开发人员绝对、肯定地必须了解 Unicode 和字符集(没有借口!)”是字符集和编码方面的必读文章。

如果编码未知,则检查chardetsharp,它可以帮助检测未知文本的字符编码。

于 2013-07-03T09:20:22.610 回答
1

string s = File.ReadAllText(file1); //Without charset
Encoding hebrewEncoding = Encoding.GetEncoding("Windows-1255");
string s = File.ReadAllText(file1, hebrewEncoding); //With charset

如果您在包含希伯来字符的字符集中包含第二个参数,则问题应该会消失。

于 2013-07-03T09:22:42.990 回答