加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 文件读取外来字符

发布时间:2020-12-15 07:53:18 所属栏目:百科 来源:网络整理
导读:我试图从.ini文件中读取外来字符. 这是我正在使用的方法 [DllImport("kernel32")]public static extern int GetPrivateProfileString(string Section,int Key,string Value,[MarshalAs(UnmanagedType.LPArray)] byte[] Result,int Size,string FileName);pub
我试图从.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[] { '' })[3]);
                return entries.Split(new char[] { '' });
            }
        }
    }

我正在使用Encoding.ASCII,但显然GetPrivateProfileString不是.来自它的字节可能需要编码.我怎样才能做到这一点?

编辑:示例

这将打印:塔瓦尔?而不是塔瓦瑞

解决方法

要阅读包含法语重音的文本,通常需要使用以下编码之一:

> Encoding.UTF8
> Encoding.GetEncoding(“iso-8859-1”)
> Encoding.GetEncoding(“windows-1252”)

编辑:这些适用于OP:

> Encoding.UTF7> Encoding.GetEncoding(“iso-8859-1”)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读