找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

13 个回复

正序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-18 11:08:04
14#
tony1109669192 发表于 2021-6-18 10:28
这个邦定数据源有乱码了,就会导致数据丢失

经过腾讯会议的沟通建议您先将产品的版本替换为14.1.1,然后用GC.Spread.Sheets.productInfo在页面的console上看下版本是否已经替换成功
例如下图,如果还有问题,咱们再进行沟通。
image.png334873961.png image.png804797668.png
回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2021-6-18 10:28:04
13#
这个邦定数据源有乱码了,就会导致数据丢失
QQ截图20210618102152.png
回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2021-6-18 10:25:18
12#
本帖最后由 tony1109669192 于 2021-6-18 10:26 编辑

现在我可以每次都能重现,如果可以的话, 我可以远程重现给你们看一下。

他不是每次都在固定的sheet 和位置
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-18 09:31:00
11#
tony1109669192 发表于 2021-6-18 00:27
在数据提交后台之前就已经出现乱码了

从您提供的表单以及代码,这边也测试了七八次左右,未能复现您的问题。建议您将您的版本尝试升级到14.1.0,保持您的产品的最新。这边也会持续去调研,目前来看原生的导出ssjson没问题的话推测是blob的问题,建议您也尝试看下是否有其他可替代的方案替换您使用的非原生的导出方法。

或者是在通过blob导出的时候指定编码格式,这块如何指定建议您查找相关资料。
image.png651197814.png
回复 使用道具 举报
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
回复 使用道具 举报
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 也有关系。。开始怀疑压缩传输,把压缩去掉,还是有乱码。




回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-17 18:11:48
8#
tony1109669192 发表于 2021-6-17 18:08
是偶然性的,不是必然性的, 所以没法有稳定重现的。

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

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

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

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

请问是否有一个比较稳定复现的步骤这边能测一下呢?这边将表单导入从显示来看没有错别字和乱码的现象,或者是您偶发的时候看能否截图保存下来,我们这边也看一下具体是哪个页面容易出现这个问题。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部