很久之前摘录了一文《h5ai 中文目录及文件均为乱码的更正方法》,距发表该文至今,h5ai已经更新了好几个版本了,目前最新的是0.25.2。刚好最近需要通过局域网以web服务的形式共享一些资料,所以重新回来了解h5ai。而这次终于是解决了曾困惑了我很久的有关中文文件和中文URL处理的问题。 当然,官方默认仍然是不支持,解决这个问题还是要自己手动修改一下源码,方法已在h5ai 官方github 的issue 140《Support non UTF-8 encoded file systems》 中提及,在这里简单分享一下。

让h5ai完美支持中文

仅需修改class-app.php 这个文件就可以解决问题了。 h5ai/server/php/inc/class-app.php 第84行

$encoded_parts[] = rawurlencode($part);

修改为:

$encoded_parts[] = rawurlencode(mb_convert_encoding($part, “UTF-8”, “GBK”));

第95行

return normalize_path(ROOT_PATH . “/“ . rawurldecode($rel_url));

修改为:

return normalize_path(ROOT_PATH . “/“ . mb_convert_encoding(rawurldecode($rel_url), “GBK”, “UTF-8”));

Comments

2014-08-07