NPLRuntime icon indicating copy to clipboard operation
NPLRuntime copied to clipboard

ParaMisc.EncodingConvert函数,从ansi转换为utf-8时,windows平台正常,linux乱码

Open Darren1414 opened this issue 7 years ago • 19 comments

以下三种调用方式,在linux平台返回的数据均乱码: (1)ParaMisc.EncodingConvert("", "utf-8", text) (2)ParaMisc.EncodingConvert("gb2312", "utf-8", text) (3)ParaMisc.EncodingConvert("gbk", "utf-8", text)

Darren1414 avatar Feb 08 '18 01:02 Darren1414

这个函数底层只实现了win32版本

kkvskkkk avatar Feb 08 '18 01:02 kkvskkkk

稍后我改写一下吧

kkvskkkk avatar Feb 08 '18 01:02 kkvskkkk

OK @kkvskkkk

LiXizhi avatar Feb 08 '18 02:02 LiXizhi

ParaMisc.EncodingConvert 完善了 跨平台 还支持宽字符 窄字符以及你能想到的所有字符集

kkvskkkk avatar Feb 11 '18 09:02 kkvskkkk

@kkvskkkk 你好,完善后的接口不支持ANSI字符,转换UTF8时依旧乱码。

Dee-Young avatar Feb 26 '18 06:02 Dee-Young

encoding.DefaultToUtf8(text) 目前调用的该接口 @kkvskkkk

Dee-Young avatar Feb 26 '18 06:02 Dee-Young

你们怎么使用的

kkvskkkk avatar Feb 27 '18 07:02 kkvskkkk

linux的默认格式是utf8 你直接调用这个就是返回输入的文本。 你要把utf8转其他格式 直接用 ParaMisc.EncodingConvert("utf-8", "xxxxx编码格式", text)

kkvskkkk avatar Feb 27 '18 07:02 kkvskkkk

@kkvskkkk 我们这边上传csv格式的文件,文件内容在windows下能用encoding.DefaultToUtf8(text)转换成中文,而linux下同样的文件就转换乱码了。我们是要把文件内容转成utf-8 。尝试使用了ParaMisc.EncodingConvert("ansi", "utf-8", text)也依旧在获得乱码

Dee-Young avatar Feb 27 '18 08:02 Dee-Young

你们代码发给我看看

kkvskkkk avatar Feb 27 '18 08:02 kkvskkkk

local text= stringUtil.split(params.file.contents, "\n")获取csv文件内容,文件内容为中英文混合 然后用encoding.DefaultToUtf8(text)转码使中文字符不乱码。在windows下可行,linux下依旧不行 ParaMisc.EncodingConvert("ansi", "utf-8", text) 也有尝试,也是乱码 @kkvskkkk

Dee-Young avatar Feb 27 '18 08:02 Dee-Young

你是如何输出 然后看到是乱码的

kkvskkkk avatar Feb 27 '18 08:02 kkvskkkk

调用log()打印到日志 @kkvskkkk

Dee-Young avatar Feb 27 '18 08:02 Dee-Young

你把Linux下的日志文件发我看看

kkvskkkk avatar Feb 27 '18 09:02 kkvskkkk

image

Dee-Young avatar Feb 27 '18 09:02 Dee-Young

第四行开始就是尝试各个格式转换的输出 第四行是ParaMisc.EncodingConvert("", "utf-8", text)的输出 第五行是ParaMisc.EncodingConvert("utf-8", "ansi", text)的输出 第六行是ParaMisc.EncodingConvert("ansi", "utf-8", text)的输出 最后一行是encoding.DefaultToUtf8(text)打印的输出 @kkvskkkk

Dee-Young avatar Feb 27 '18 09:02 Dee-Young

你把文件发给我

kkvskkkk avatar Feb 27 '18 09:02 kkvskkkk

@kkvskkkk QQ发一下给我吧,我加你

Dee-Young avatar Feb 28 '18 03:02 Dee-Young

460864076

kkvskkkk avatar Feb 28 '18 03:02 kkvskkkk