NPLRuntime
NPLRuntime copied to clipboard
ParaMisc.EncodingConvert函数,从ansi转换为utf-8时,windows平台正常,linux乱码
以下三种调用方式,在linux平台返回的数据均乱码: (1)ParaMisc.EncodingConvert("", "utf-8", text) (2)ParaMisc.EncodingConvert("gb2312", "utf-8", text) (3)ParaMisc.EncodingConvert("gbk", "utf-8", text)
这个函数底层只实现了win32版本
稍后我改写一下吧
OK @kkvskkkk
ParaMisc.EncodingConvert 完善了 跨平台 还支持宽字符 窄字符以及你能想到的所有字符集
@kkvskkkk 你好,完善后的接口不支持ANSI字符,转换UTF8时依旧乱码。
encoding.DefaultToUtf8(text) 目前调用的该接口 @kkvskkkk
你们怎么使用的
linux的默认格式是utf8 你直接调用这个就是返回输入的文本。 你要把utf8转其他格式 直接用 ParaMisc.EncodingConvert("utf-8", "xxxxx编码格式", text)
@kkvskkkk 我们这边上传csv格式的文件,文件内容在windows下能用encoding.DefaultToUtf8(text)转换成中文,而linux下同样的文件就转换乱码了。我们是要把文件内容转成utf-8 。尝试使用了ParaMisc.EncodingConvert("ansi", "utf-8", text)也依旧在获得乱码
你们代码发给我看看
local text= stringUtil.split(params.file.contents, "\n")获取csv文件内容,文件内容为中英文混合 然后用encoding.DefaultToUtf8(text)转码使中文字符不乱码。在windows下可行,linux下依旧不行 ParaMisc.EncodingConvert("ansi", "utf-8", text) 也有尝试,也是乱码 @kkvskkkk
你是如何输出 然后看到是乱码的
调用log()打印到日志 @kkvskkkk
你把Linux下的日志文件发我看看
第四行开始就是尝试各个格式转换的输出 第四行是ParaMisc.EncodingConvert("", "utf-8", text)的输出 第五行是ParaMisc.EncodingConvert("utf-8", "ansi", text)的输出 第六行是ParaMisc.EncodingConvert("ansi", "utf-8", text)的输出 最后一行是encoding.DefaultToUtf8(text)打印的输出 @kkvskkkk
你把文件发给我
@kkvskkkk QQ发一下给我吧,我加你
460864076