wordpress的一个问题
21 July 2008 – 12:51 pm昨天在IE8下修改页面时还遇到了另一个问题。wordpress自作聪明的把一些标点符号,例如('),(...)给自动转换为了UTF-8标准码格式,变成(’)和(…)。
我以前一直没有发现这个问题,因为在IE6,7和FX2,3下这些符号的显示并无任何夸张的地方(至少在我的电脑上如此)。这些符号虽然被转换为了UTF-8格式,但实际显示中还是很像半角引号。
不过,IE8开始遵守那个神秘的“标准”之后,如果你的blog和我的一样,是"*****'s blog"之类的名字,这个问题将显得异常明显,就会像图片中一样难看。
![]()
询问Google大师之后,了解这个问题的根源在于/wp-includes/formatting.php这个文件中。猛击这个文件,删除wptexturize这个函数中你不喜欢的那些符号转换即可解决问题。
不过如果你和我一样对php一窍不通,而且很懒,有人写了一个小插件,Quotmarks Replacer,不到2k,能很好的解决这个问题,而且支持到wp 2.6。这个插件相当于禁掉了那个讨厌的函数。
我不知道wordpress这样做的目的是什么,洋人又不用全角标点符号。(啊,其实用的,只不过那个撇号不如图片中的那个一样夸张。)不过可以预见的是,如果IE8继续遵守这个标准,wordpress迟早得取消掉这种转换,否则将会对大量wordpress架设的英文blog带来麻烦。在英文中(')这个符号用得太多了,中文反倒还好一些。
你不得不承认…… »




4 个回应
官方好像没给出解释和说法,不过,如果你去看过一些标准的外文报纸,杂志的话,比如 NY Times,你会发现他们使用的所有的
''都是全角的‘’。比如 It’s me. What’s up?。这应该是排版的一种标准而已,然而这样的话,有一些要经常帖代码的人,尤其是 php 代码的人就会遇到困难,还是希望 wp 能在今后设一个选项出来,让用户来决定是否转换随手抓了一本Time,好像的确如你所说。不过他们用的是 8217;这个撇号?看上去不像,那个符号在印刷中占的位置很小。
这似乎更多的是IE 8的问题,看了几个UTF-8编码的网站, 8217;这个’所占的位置都是异常的宽。不知道真正的标准是占多少位置?
嗯,ie 不管是哪个版本处理上都会有问题,NYT 用的应该是 U+2019,unicode 定义为首选的撇号,我是在这里找到的:
http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
PS:第一条没发出?被和谐?
啊,谢谢找到那个网页。
PS:Akismet对带链接的评论太过敏了而已:)