无法将文本文件中的土耳其字符读取到字符串数组中

Sel*_*uke 6 c# string character-encoding text-files

我试图在土耳其语中进行某种句子处理,我正在使用文本文件作为数据库.但我无法从文本文件中读取土耳其语字符,因为我无法正确处理数据.

string[] Tempdatabase = File.ReadAllLines(@"C:\Users\dialogs.txt");
textBox1.Text = Tempdatabase[5];
Run Code Online (Sandbox Code Playgroud)

输出:

Gra*_*ICA 7

这可能是一个编码问题.尝试使用其中一个土耳其语代码页标识符.

var Tempdatabase =
    File.ReadAllLines(@"C:\Users\dialogs.txt", Encoding.GetEncoding("iso-8859-9"));
Run Code Online (Sandbox Code Playgroud)


byt*_*e77 4

Encoding您可以随意使用。这可能最终会产生预期的结果,但请记住,这可能不适用于其他文件。

通常,C# 默认使用 Unicode 处理字符串和文件。因此,除非您确实需要其他东西,否则您应该尝试以下方法:

在记事本(或任何其他程序)中打开文本文件并将其另存为UTF-8文件。然后,您应该无需对代码进行任何修改即可获得预期结果。这是因为 C# 使用保存文件时使用的编码来读取文件。这是默认行为,应该是首选行为。

当您将文本文件保存为 UTF-8 时,C# 会这样解释它。

这也适用于.htmlVisual Studio 内的文件,如果您发现它们显示不正确(用 ASCII 解析)

另存为