C# WritePrivateProfileString() 值不是英语

C# WritePrivateProfileString() value other than English language

我试图在 ini 文件中保存一个文件路径,其中包含一个阿拉伯语文件夹。即

D:\ملف جديد\Checking Folder

但是用WritePrivateProfileString()写在settings.ini之后。显示路径如下:

D:\??? ????\Checking Folder

如何正确保存路径?

编辑:

以下是我用来编写ini文件的代码

[DllImport("kernel32")]

private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

您必须使用 System.Text.Encoding.GetEncoding("Arabic") 才能在路径中使用阿拉伯语文本

例如,如果你想在文件中读写比

using (var reader = new System.IO.StreamReader("YourFilePath", System.Text.Encoding.GetEncoding("Arabic")))
{
}

using (var writer = new System.IO.StreamWriter("YourFilePath", true, System.Text.Encoding.GetEncoding("Arabic")))
{
}

您可以尝试 my INI library,我创建它是为了让那些 WritePrivateProfile API 更友好(更有意义/直观)API。
以下是如何使用它的示例:

// Your inputs.
string section, key, val, filePath;

var iniOptions = new IniOptions();
iniOptions.Encoding = Encoding.UTF8;

var ini = new IniFile(iniOptions);
ini.Load(filePath);

IniSection iniSection = ini.Sections[section];
IniKey iniKey = iniSection.Keys[key];
iniKey.Value = val;

ini.Save(filePath);

希望对您有所帮助。