0

我正在使用 xlsx-populate 写入 excel 文件。每当文本包含特殊字符(例如智能引号或项目符号点)时,它就会被打印为奇怪的字符,例如 ’。但是,如果将它们替换为它们的 Unicode 值(带有 \u2019 的右单引号),它会在 Excel 工作表中正确呈现。

我尝试了 slugify 之类的 js 库将特殊字符转换为 ascii 版本,但所有这些库都会单独转换特殊字符的每个组成字节,而不是整体转换。

目前,我使用正则表达式将特殊字符替换为它们的 Unicode 值,但总会有一些我会错过的字符。有没有更好的方法来处理这个问题?

4

1 回答 1

0

我使用iconv-lite库首先将字符串编码为“win1252”,然后使用“utf-8”对其进行解码。结果字符串在写入 excel 时正确呈现。

iconv.decode(iconv.encode(string, 'win1252'), 'utf-8')

感谢@JosefZ 建议这条路。

于 2021-08-06T05:25:52.247 回答