找回密码
 立即注册

QQ登录

只需一步,快速开始

诗仙·1957
金牌服务用户   /  发表于:2023-11-24 14:39  /   查看:1060  /  回复:4
1金币
本帖最后由 诗仙·1957 于 2023-11-24 15:29 编辑

直接C#测试读取文本内容:

中文现在没有乱码正常的

然后活字格测试




相同的代码,:

public static string ReadTextFile(string filePath)
{
    string encodingtype = DetectEncoding(filePath);
    if (encodingtype.ToLower().Contains("utf"))
    {
        using (StreamReader sr = new StreamReader(filePath, Encoding.Default))
        {
            byte[] bytes = Encoding.Default.GetBytes(sr.ReadToEnd());
            return Encoding.UTF8.GetString(bytes);
        }
    }
    else
    {
        StringBuilder sb = new StringBuilder();
        string[] lines = File.ReadAllLines(filePath, Encoding.GetEncoding("GB2312"));
        foreach (string line in lines)
        {
            sb.AppendLine(line);
        }
        return sb.ToString();
    }
}

初步测试发现活字格系统支持的编码格式十分有限:
在vs2022  windows系统中获取支持的编码发现非常的多。且包含GB2312,GB18030,所以上面测试的结果是本地能读取windows记事本保存的文本内容




用同样的代码在活字格运行测试结果是:


没有gb2312  以及gb18030所以一旦当使用这个


StringBuilder sb = new StringBuilder();
string[] lines = File.ReadAllLines(filePath, Encoding.GetEncoding("GB2312"));
foreach (string line in lines)
{
    sb.AppendLine(line);
}
return sb.ToString();
代码去读取,直接就提示
GB2312' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. (Parameter 'name')



何解????这个似乎需要官方出手了???



附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

4 个回复

倒序浏览
Shawn.Liu活字格认证
超级版主   /  发表于:2023-11-24 16:34:08
沙发
这边大概了解大佬插件的功能,还没有在活字格服务端命令中安装体验测试,如果说目前不支持GB2312编码的文本,是否可以在插件内部封装代码,将GB2312编码的文本内容将其转换为UTF-8后再放到返回值中。
回复 使用道具 举报
诗仙·1957
金牌服务用户   /  发表于:2023-11-25 11:23:17
板凳
Shawn.Liu 发表于 2023-11-24 16:34
这边大概了解大佬插件的功能,还没有在活字格服务端命令中安装体验测试,如果说目前不支持GB2312编码的文本 ...

尝试过转换编码,中文会乱码,因此放弃了,建议在读取文本前就对文本编码处理,可以考虑python处理,参考https://gcdn.grapecity.com.cn/showtopic-167402-1-1.html
回复 使用道具 举报
豪~豪悬赏达人认证 活字格认证
银牌会员   /  发表于:2023-11-26 19:50:45
地板
可以使用Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);命令看看
回复 使用道具 举报
Shawn.Liu活字格认证
超级版主   /  发表于:2023-11-27 11:21:50
5#
诗仙·1957 发表于 2023-11-25 11:23
尝试过转换编码,中文会乱码,因此放弃了,建议在读取文本前就对文本编码处理,可以考虑python处理,参考 ...

收到大佬,这边您有其他方法能够解决问题也可以,赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部