【问题标题】:Remove Invalid Characters from string [closed]从字符串中删除无效字符[关闭]
【发布时间】:2018-08-03 15:42:53
【问题描述】:

我正在使用 php 将数据保存到数据库,并使用 java 将其导出

当我创建 excel 时,有些行有一些字符会导致问题

我使用这个https://github.com/dhatim/fastexcel

没有代码错误,但是当我打开 xlsx 时,我看到了这个

这里是字符:“\b”和“\u0001”

这是我的数据库行与此字符

enter image description here

当我从 db 复制列并将其粘贴到 inteliji 时,我看到了这个

有没有办法改变字符串编码以避免excel错误,或者当我将它们保存到数据库或java时使用php删除这些坏字符

【问题讨论】:

  • 您用于转换为 Excel 的库很可能无法处理除 ASCII 以外的任何内容。对于您的问题“有什么方法可以更改字符串编码”..不,因为您无法控制外部库。
  • @Nishit 我的意思是在将字符传递给库之前更改编码或删除字符
  • 您的数据中有中文字母。这意味着非 ASCII 字符。如果删除它们,就会丢失数据。这与额外无害的退格或空格或换行符无关。问题是您使用的库无法解析您的真实数据。
  • @Nishit 但汉字通常被库解析,
  • 当我从字符串中删除 "\b" 时一切正常

标签: java php excel unicode encoding


【解决方案1】:

看起来数据包含不可打印字符“标题开头”和“退格”,这些字符在常见字符集中有效。查看 String.replaceAll() 替换为“”。这将删除这些字符。我留给你构建一个简单的正则表达式来搜索它们。

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2012-10-02
    • 2021-03-17
    • 2013-12-22
    • 1970-01-01
    相关资源
    最近更新 更多