我试图从.ini文件中读取外来字符.
这是我正在使用的方法
这是我正在使用的方法
[DllImport("kernel32")] public static extern int GetPrivateProfileString(string Section,int Key,string Value,[MarshalAs(UnmanagedType.LPArray)] byte[] Result,int Size,string FileName); public static string[] GetEntryNames(string section,string iniPath) { for (int maxsize = 500; true; maxsize *= 2) { byte[] bytes = new byte[maxsize]; int size = Imports.GetPrivateProfileString(section,"",bytes,maxsize,iniPath); if (size < maxsize - 2) { string entries = Encoding.ASCII.GetString(bytes,size - (size > 0 ? 1 : 0)); Console.WriteLine("Entries: " + entries.Split(new char[] { '\0' })[3]); return entries.Split(new char[] { '\0' }); } } }
我正在使用Encoding.ASCII,但显然GetPrivateProfileString不是.来自它的字节可能需要编码.我怎样才能做到这一点?
编辑:示例
这将打印:塔瓦尔?而不是塔瓦瑞
解决方法
要阅读包含法语重音的文本,通常需要使用以下编码之一:
> Encoding.UTF8
> Encoding.GetEncoding(“iso-8859-1”)
> Encoding.GetEncoding(“windows-1252”)
编辑:这些适用于OP:
> Encoding.UTF7> Encoding.GetEncoding(“iso-8859-1”)
原文地址:https://www.jb51.cc/csharp/99825.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。