INI文件配置亂碼——C#


在聲明時加上參數CharSet = CharSet.Unicode

[DllImport("kernel32", CharSet = CharSet.Unicode)]

CharSet: 指示如何向方法封送字符串參數,並控制名稱重整。

最后,附上讀寫ini文件,解決出現亂碼的代碼

[DllImport("kernel32", CharSet = CharSet.Unicode)]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32", CharSet = CharSet.Unicode)]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
        
/// <summary>
///讀取ini文件數據
/// </summary>
/// <param name="Section"></param>
/// <param name="Key">鍵名</param>
/// <param name="def">默認值</param>
/// <param name="filePath">文件路徑</param>
/// <returns>讀出內容</returns>
public static string ReadValueFromIniFile(string Section, string Key, string def, string filePath)
{
    StringBuilder temp = new StringBuilder(4096);
    int i = GetPrivateProfileString(Section, Key, def, temp, 4096, filePath);
    return temp.ToString();
}
 
/// <summary>
/// 寫入數據到ini文件
/// </summary>
/// <param name="Section"></param>
/// <param name="Key">鍵名</param>
/// <param name="Value">鍵值</param>
/// <param name="filePath">文件路徑</param>
public static void WriteValueFromIniFile(string Section, string Key, string Value, string filePath)
{
    WritePrivateProfileString(Section, Key, Value, filePath);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM