Safari 将网页导出为 pdf 有个很诡异的 bug,会把普通文字转成 CJK 部首

2023-03-27 12:04:24 +08:00
 f1ynnv2

不知道大家有没有经常使用 Safari->文件->导出为 PDF 的功能,我比较下来,这个是所有网页转 PDF 方案里唯一能保证网页原效果的方法,所以经常使用。

但是它有个很诡异的 bug ,就是如果网页里有一些字符的 Unicode 编码恰好和一些 Unicode 部首区域的字符相似的话,它竟然会把这些普通的文字转成后者!

举个例子来说,大:\u5927 、马:\u9a6c ,这是中文正常使用 Unicode 时的编码,但是 Safari 转成 PDF 后,会把这两个字符强制变成\u2f24 和\u2ee2

2E80-2EFF 区域是 CJK 部首补充 2F00-2FDF 区域是康熙字典部首

有兴趣的可以拿这这篇文章转成 pdf 试试 https://mp.weixin.qq.com/s/9aj9cA0auQTEuwP_VjCDxQ

这文章里有“大”这个字

大家有没有啥办法让 Safari 别这么搞,因为搞了个 PDF 文档检索系统,很多文字被这样转了之后,就搜索不到了,很苦恼。

1701 次点击
所在节点    macOS
11 条回复
DonDonc
2023-03-27 13:05:23 +08:00
这个问题除了浏览器之外,和字体也有关系,不清楚怎么解决,不过可以提供参考资料 https://www.thetype.com/typechat/ep-183/ 字谈字畅的播客有提到这个问题。

不过可以提供另一个保存网页的方案,另存为 mhtml ( Chrome )或者 webarchive ( Safari )。
lqcc
2023-03-27 13:14:06 +08:00
跟操作系统用的语言有没有关系?
KevinChan
2023-03-27 14:14:16 +08:00
楼主能具体描述一下吗?因为我试着导出,也没什么异常啊。字形没什么异常,也能正常查询,复制。
wydinhk
2023-03-28 08:16:11 +08:00
macOS 16.3 ,简体中文系统,无异常。
pigzilla
2023-03-28 08:28:20 +08:00
大概率是这个网站 /网页本身有防爬,将某些字符替换成了你说的这些错误的部首,但是通过定制的字体使得显示看起来又是正常的。
jjxtrotter
2023-03-28 08:36:54 +08:00
试试“打印”,然后存储为 PDF 。

你的那个微信文章感觉用这种方式会更舒服
Kbytes
2023-03-28 09:20:42 +08:00
在我的电脑上测试了一下,感觉更像是 pdf 软件打开时存在转码(不清楚为什么要这么做)。比如存储为 pdf 后,用预览或 chrome 打开时,字的编码是正常的,但使用 pdf expert 打开时,编码就变了。
feel5230
2023-03-28 17:22:38 +08:00
@jjxtrotter 是的…

楼主可以试试打印然后生成 PDF 文件;

如果页面内容更多,点击阅读模式,然后再打印生成 PDF 就能解决这个问题了啊
f1ynnv2
2023-03-28 23:40:44 +08:00
@feel5230 这种方式其实就是前面说的,如果页面有打印样式的话,会调用打印样式。像是公众号文章其实这样做出来效果还行,但是有些页面用的默认打印样式,那个惨不忍睹啊
hs0000t
2023-03-31 17:33:31 +08:00
https://www.v2ex.com/t/865924
我在不到一年前就碰见了这个问题,最近才解决
f1ynnv2
2023-04-01 14:18:19 +08:00
@hs0000t 顺着你的思路,我查了一下,大概知道原因了,是锅在 macOS 用的 pdf 转换器
https://www.zhihu.com/question/309496647

看来很多 PDF 转换器都存在这种自作聪明的瞎搞,上文里有个人说的很对:不要相信 Quartz 输出的 PDF 能够满足你们的所谓电子书 /文档需求。它只能满足你打印出来的和你在 UI 上看到的一样。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/927485

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX