问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 微信小程序 需求 FileSystemManager.writeFile 客户端 6.5.3 2.0.0
- 需求的场景描述(希望解决的问题)
调用FileSystemManager.writeFile接口保存文件,内容为中文的字符,再调用
wx.openDocument打开文件时,中文无法正确显示!保存文件时已设定编码格式utf-8,但打开时还是不行。
- 希望提供的能力
有什么方法解决打开文档后正确显示中文。
代码片段
const fs = wx.getFileSystemManager(); fs.writeFile({ filePath: wx.env.USER_DATA_PATH+'/hello2', data:'盛世嫡妃按时发顺丰的', encoding: 'utf8', success: function (res) { console.log("success", res) wx.openDocument({ filePath: wx.env.USER_DATA_PATH + '/hello2', fileType: 'xls', success: function (res) { console.log("success", res) }, fail: function (res) { console.log("fail", res) }, conplete: function (res) { console.log("complete", res) } }) }, fail: function (res) { console.log("fail", res) }, conplete: function (res) { console.log("complete", res) } })
微信小程序开发问题解答
微信小程序开发者回答:
你用readFile读文件,是什么样子的?
微信小程序开发者回答:
readFile输出的中文能正常显示。
微信小程序开发者回答:
对咯。。你存的时候存的纯文本,打开却用openDocument 打开文件啊。。openDocument打开的文件类型不是固定的那几个吗?
微信小程序开发者回答:
我是希望保存为表格,打开用xls格式打开。英文数字是没有问题的,现在中文出现了乱码!如何解决?
微信小程序开发者回答:
还试了一下,打开方式设置为doc,打开会自动提示转码,转码为utf-8,就可以正常显示中文了。但是xls打开时没有要求转码的,怎么办?
微信小程序开发者回答:
这和微信小程序没啥关系。。纯文本格式和xls格式不同的说。。你非要这么用,那也只能是在左上角那一个单元格里。。你要做啥
废话完了,说说怎么回事吧。。你存文本用的utf-8,xls在中文环境的windows电脑上的编码格式是GBK,微信小程序存文件是没个这个类型的。。
你可以简单的做个实验
1、建个txt文件,然后在里面录入中文,然后后缀名改为xls,然后用excel打开;
2、建个txt文件,然后用 notepad++打开,把文件的编码格式变为 ANSI (windows电脑上即是GBK),然后在里面录入中文,然后后缀名改为xls,然后用excel打开;(这个你能在excel里看见正常的中文)
微信小程序开发者回答:
你可能要去查下excel识别UTF-8
微信小程序开发者回答:
我是存为表格的,使用\t和\n作为退格和换行,excle打开没问题。还有,建个txt录入中文后缀名改xls同样可以显示中文的。
微信小程序开发者回答:
你用文本编辑器看看格式呢?
微信小程序开发者回答:
建议你后端来生成excel文件,前端直接把返回的内容writeFile
微信小程序开发者回答:
记事本存的格式ansi格式,中文可以显示,改后缀为xls后也可以正常显示中文。
微信小程序开发者回答:
嗯,对咯。你微信小程序存的时候是uft8。。肯定是乱码。。微信小程序里不能选GBK编码
微信小程序开发者回答:
最后,发现手机端WPS打开正常显示中文,另存为Excel后再打开便可以正常显示中文了。
本文网址:http://www.91bianli.com/kaifazhinan/76005.html