今天想把主题给汉化一下,但是仅凭Loco Translate插件不能完全汉化主题,我不得不编辑主题源文件。在修改comments.php的时候,遇到了一个奇怪的问题——我只是把单引号中的一个单词替换成中文,访问首页时就遇到了如下错误:

 Parse error: syntax error, unexpected T_STRING

于是我用Ctrl+Z回退了对代码的修改,并且把修改前后的代码复制到同一个文本文件中进行比较,发现从头至尾,两段代码除了单引号中的内容不同并无差异,甚至将中文直接改回英文也还是会报同样的错误。

在群里询问dalao后……我在16进制下(hexdump for VScode)对两种代码进行对比,发现有一段不同:本来应在“20”处的空格活生生变成了“C2”与“A0”,远超ASCII编码范围。。。

hexdump for VSCode
16进制编辑器

出现这个问题的原因还有待考究,我的情况是使用了Safari+Wordpress自带主题编辑器,初步怀疑是Mac输入时的某种机制导致的,或者是Safari的bug。

但如果你也遇到了,不要慌,删除所有空格就好了。