当前位置: 代码迷 >> C# >> 怎么在C#中使用API(WritePrivateProfileString)向UTF-8的Ini文件中写入正确的值
  详细解决方案

怎么在C#中使用API(WritePrivateProfileString)向UTF-8的Ini文件中写入正确的值

热度:571   发布时间:2016-05-05 02:52:49.0
如何在C#中使用API(WritePrivateProfileString)向UTF-8的Ini文件中写入正确的值
我是WPF中使用,通过WritePrivateProfileString往ini配置文件中写数据。其中有变量是URL,存放的是文件路径名称等信息,如:"file:///C:\Users\Public\Videos\Sample Videos\CM 沢尻エリカ たかの友梨 BEAUTY CLINIC 「王妃の.mp4",就会出现乱码。同时原本以UTF-8存储的ini文件通过重新写入后变成了GB2312的编码。
如何使编码始终是UTF-8呢???大神有成功案例吗

[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

private static string ReadIniData(string Section, string Key, string NoText, string iniFilePath){//读INI文件
            if (File.Exists(iniFilePath)){
                StringBuilder temp = new StringBuilder(1024);
                GetPrivateProfileString(Section, Key, NoText, temp, 1024, iniFilePath);
                return temp.ToString();
            }
            else{
                return String.Empty;
            }
        }

private static bool WriteIniData(string Section, string Key, string Value, string iniFilePath){//写入INI文件
            if (File.Exists(iniFilePath)){
                long OpStation = WritePrivateProfileString(Section, Key, Value, iniFilePath);
                if (OpStation == 0){
                    return false;
                }
                else{
                    return true;
                }
            }
            else{
                return false;
            }
        }



------解决思路----------------------
楼主那个路径有点像A Pian视频啊。
------解决思路----------------------
鼓个掌