0723 - 打好基本功

今天修复一个 Klib 的 Bug: 导出至 Evernote 时失败。

首先,肯定是看出错日志,提示导出的书名格式无效。只是个字符串,怎么会无效呢?把字符串打印出来,也没看出个所以然;不过,手动将这个字符串替换为 “123” 就成功了,因此可以确认确实是这个字符串有问题。

后来,在 LLDB 控制台中打印出含特殊字符的格式,才发现其中有个 “\u{c2}”. 然后,就查这个字符串呗。

然后就被坑了。

整了几个小时,没搞定。无奈放弃,并向高人求教。果然,有高人指出,其实并不是打印出来的 “\u{c2}”,而是有一个看不见、且没有输出的 “\u{97}”。删掉之后,就正常了。

好,对于这个问题、这个字符是解决了,那还会有哪些字符呢?这是个问题。最佳的解决办法是,找到 Evernote 对于有效、无效字符集的定义,对症下药。不过,以我对 Evernote macOS SDK 6 年不更新的理解,应该不会有这样的定义。所以,更靠谱的办法是,替换掉所有可能有问题的字符,尤其是看不见的控制符。虽然,这不能从根本上解决问题,但从工程的角度,够了,没有谁在书名、笔记上输入自己都看不见的字符。

从这件事来看,自己的基础还是不够扎实。在做业务的间隙,还是抽时间巩固这些基础的东西。