找回密码
 立即注册

QQ登录

只需一步,快速开始

tony1109669192
金牌服务用户   /  发表于:2021-6-10 09:30  /   查看:3392  /  回复:13
如何处理spreadjs数据提交之后,出现乱码或错别字的问题?
最近出现这一类问题,一直找不到原因。

重现可以找一些结构复杂一点的模板,通过接口实现重复有数据原邦定sheet功能。多复制几下sheet,保存之后就有可能出现乱码或错别字的问题。

13 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-10 09:56:20
沙发
中文乱码一般跟保存的编码格式有关,您需要用UTF-8编码格式进行保存。建议您检查一下对应的编码,如果仍未解决您的问题,建议您提供能复现问题的demo,我们这边测试一下,看下能否调研出问题。
回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2021-6-10 10:11:36
板凳
已经是用UTF-8格式了,这个重现问题有难,他不是必然的,是偶然的,有时候是这个单元格的乱,多操作几个又是另外一个单元格的乱。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-10 10:46:06
地板
tony1109669192 发表于 2021-6-10 10:11
已经是用UTF-8格式了,这个重现问题有难,他不是必然的,是偶然的,有时候是这个单元格的乱,多操作几个又 ...

您可以尝试在html页面头部加上<meta charset="UTF-8" />试一下

如果还未解决您的问题,建议您提供能稳定复现的demo以及步骤,这样我们才能更加准确定位问题。
回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2021-6-16 16:45:55
5#
本帖最后由 tony1109669192 于 2021-6-16 16:49 编辑

excel文件ssjson和数据源json
忽略图片,
image.png689930114.png
image.png703858031.png

SJ20_bbe2429d-ae80-4633-8e8a-a1733cacdd01(637594579319873558).xlsx

112.67 KB, 下载次数: 21

SJ20_bbe2429d-ae80-4633-8e8a-a1733cacdd01(637594579319873558).ssjson

7 MB, 下载次数: 22

SJ20_bbe2429d-ae80-4633-8e8a-a1733cacdd01(637594579319873558).json

89.29 KB, 下载次数: 25

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-16 17:08:25
6#
tony1109669192 发表于 2021-6-16 16:45
excel文件ssjson和数据源json
忽略图片,

请问是否有一个比较稳定复现的步骤这边能测一下呢?这边将表单导入从显示来看没有错别字和乱码的现象,或者是您偶发的时候看能否截图保存下来,我们这边也看一下具体是哪个页面容易出现这个问题。
回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2021-6-17 18:08:34
7#
本帖最后由 tony1109669192 于 2021-6-17 18:09 编辑

是偶然性的,不是必然性的, 所以没法有稳定重现的。

跟踪发现,数据丢失,主要还是因为中文错别字引起的,
比如模板设计的时候,邦定的数据源为:1.SelfReportAttributes.设计,但填报保存之后,邦定的数据源值可能会变成:1.SelfReportAttributes.设计
这样就会导致邦定数据源的时候,这个位置的值是空的。
就是经过保存传输到后面。原来的“值”就自动的变成了“报”,而且是随机的。并不是每次都变这个
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-17 18:11:48
8#
tony1109669192 发表于 2021-6-17 18:08
是偶然性的,不是必然性的, 所以没法有稳定重现的。

跟踪发现,数据丢失,主要还是因为中文错别字引起 ...

了解了,目前确实没有太好的复现方法。这边也会尝试去复现问题,如果您那边有更多相关信息,建议您提供给我们,帮助我们定位问题。
回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2021-6-17 20:57:56
9#
本帖最后由 tony1109669192 于 2021-6-17 21:40 编辑

保存之后,中文字体就有可能变乱码 QQ截图20210617205635.png QQ截图20210617210142.png
QQ截图20210617213427.png QQ截图20210617213400.png

我这份excel文件有100来个sheet
这是我们提交后面的一段代码 QQ截图20210617214000.png

QQ截图20210617213804.png
不知道会不会跟blob 也有关系。。开始怀疑压缩传输,把压缩去掉,还是有乱码。




回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2021-6-18 00:27:42
10#
本帖最后由 tony1109669192 于 2021-6-18 00:29 编辑

在数据提交后台之前就已经出现乱码了
QQ截图20210618002130.png

下载下来,直接用
桌面版打开
QQ截图20210618002304.png

但是用在线编辑器集成的导出ssjson功能,导出的ssjson文件又没有错别字。
初步锁定在
  1. var spreadJSON = spread.toJSON({ includeBindingSource: true, includeAutoMergedCells: true });
  2.                 var spreadJSONString = JSON.stringify(spreadJSON);
复制代码
这段代码。


js导出的代码:
  1. function fakeClick(obj) {
  2.     var ev = document.createEvent("MouseEvents");
  3.     ev.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
  4.     obj.dispatchEvent(ev);
  5. }

  6. function exportRaw(name, data) {
  7.     var urlObject = window.URL || window.webkitURL || window;
  8.     var export_blob = new Blob([data]);
  9.     var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
  10.     save_link.href = urlObject.createObjectURL(export_blob);
  11.     save_link.download = name;
  12.     fakeClick(save_link);
  13. }
复制代码


QQ截图20210617210142.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部