WordPress 2.0.2 上传图片标题乱码解决
上传文件描述乱码是 WordPress 的一个“固有”的 Bug 了。自从 1.5 版就有,当时我还专门写文章说明了解决办法。WordPress 升级到了 2.0.2,这个 Bug 却依然存在,虽然修改方式略有变化,但原理都是相同的,就是没有正确处理 PHP 函数 htmlentities() 的编码问题。
问题现象:撰写文章时,用书写界面下方的上传文件对话框可以上传附件。当在标题处键入非拉丁字符(多字节字符)时,上传成功后附件的描述为乱码。
解决方案:1. 打开
- <?php
- function htmlentities2($myHTML) {
- return preg_replace("/&([A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&$1",htmlentities($myHTML,ENT_QUOTES,get_settings('blog_charset')));
- }
- ?>
2. 打开
- <?php
- // 237 行,原始代码为:
- $title = htmlentities($image['post_title'], ENT_QUOTES);
- // 修改为
- $title = htmlentities($image['post_title'], ENT_QUOTES,get_settings('blog_charset'));
- // 257 行,原始代码为:
- $title = htmlentities($attachment['post_title'], ENT_QUOTES);
- // 修改为
- $title = htmlentities($attachment['post_title'], ENT_QUOTES,get_settings('blog_charset'));
- ?>
以上代码测试通过 (WordPress 2.0.2) ,并已经应用于本站。
原文链接**:花儿开了 - WordPress 2.0.2 上传图片标题乱码解决
** 本博客文章全部原创,原则上不欢迎全文转载,如需转载(包括部分转载,使用文章图片等)请务必标注原文链接!同时,本博文章不欢迎任何形式的派生及篡改,如需引用,请使用引用通告(Trackback) - http://blog.istef.info/2006/04/26/wordpress-20.../trackback/。商业网站使用请务必先取得作者授权!

谢谢,dashborad的问题解决了。
谢谢,已经弄好了。
我在sendToEditor函数里面加了h = h.replace(“height=96″,”");
我不想让它限制图片的高度。
不过我不会写正则 只有这样写了
这个问题困扰我很久了,感谢花儿开了,感谢Google,相逢是缘
也希望早点搞一下2.0.4,那个文件名的问题更是古怪了。
这个办法在 windows 服务器上是可以的,但在 linux 服务器上时,还是会有问题。比如我曾经遇到的一种情况:
server 端默认语言为 GBK; 而运行其上的 wordpress 却是 UTF8 的。因为 getsettings(‘blogcharset’) 是 ‘UTF-8′,按此 charset 创建出来的文件名,通过 ftp 是无法辨认的,这会对网站数据备份,及附件管理造成很大的不便。
从而在此情形下的修改也就不像原文当中想象的那样顺畅了!