我正在尝试在 ini 文件中保存文件路径,该文件包含阿拉伯语文件夹。即。
D:\ملفجديد\检查文件夹
但在使用WritePrivateProfileString()
将其写入 settings.ini 后。它显示路径如下:
d:\ ??? ???? \检查文件夹
我该怎么做才能正确保存路径?
修改
以下是我用来编写ini文件的代码
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
答案 0 :(得分:3)
您必须使用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")))
{
}
答案 1 :(得分:1)
您可以试用my INI library,我创建它是为了拥有一个更友好(更有意义/更直观)的API,然后是那些WritePrivateProfile 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);
我希望这会有所帮助。