iconv

PHP下PclZip中文乱码问题解决方案

吐槽下先,搜索引擎上居然搜不到大陆网站关于PclZip中文乱码的资料,此解决方案的灵感来源于台湾的某个被墙网站,CNM FBX! 问题出在文件名编码上(废话) 在Windows下zip文件内的文件名编码是GB2312,而我写的PHP文件编码是UTF8。 所以只要把文件名从UTF8转到GB2312就行了。 代码在PclZip.lib.php的2779行(函数privAddFile内),将 $p_header['stored_filename'] = $p_filedescr['stored_filename']; 改为 $p_header['stored_filename'] = mb_convert_encoding( $p_filedescr[

  • Leo Chen
    Leo Chen
1 min read
AIML

修改program-o使之支持中文(四)

接下来要修改的是后台管理部分,主要要修改的地方是插入或者更新数据库时对中文进行处理。 所有要修改的文件都在admin\funcs目录下。 打开config.php,在最后添加两个函数 //----------------------------------------------------------- //formatchinese($str) add a space into each Chinese character //----------------------------------------------------------- function formatchinese($str){ if(preg_match_all("/[\x{4e00}-\x{9fa5}]{1}/u&

  • Leo Chen
    Leo Chen
2 min read
AIML

修改program-o使之支持中文(三)

接下来是安装program-o,步骤很简单就不说了。 安装完毕之后就可以测试对话了,内置的英文对话库很全,基本上都能对上来,大家可以先和它玩一玩。 下面就要开始修改了,首先是前台人机对话的代码。 打开bot/response_handler.php,在最后面加上 //----------------------------------------------------------- //formatchinese($str) add a space into each Chinese character //----------------------------------------------------------- function formatchinese($str){ if(preg_match_all("/[\x{

  • Leo Chen
    Leo Chen
1 min read
AIML

修改program-o使之支持中文(二)

在修改prorame-o的代码之前需要做一些准备工作,主要是文件编码的转换。 因为prorame-o的默认编码是iso-8859-1,使用中文的话会乱码,所以需要将编码修改为utf-8。 需要用到的工具是notepad++  。 修改网页中的编码设置,打开notepad++,按快捷键ctrl+f,切换到“文件查找”选项卡,查找目标填入“charset”,文件类型填“.”,目录选择prorame-o所在的目录。如图: 点击“全部查找”之后,稍等一会,应该会在10个文件中找到19处,如图: 双击搜索结果,会打开相对应的文件,并跳转到对应的那一行 把charset=iso-8859-1全部修改为charset=utf-8 把CHARSET=latin1全部修改为CHARSET=utf8

  • Leo Chen
    Leo Chen
1 min read
Gedit

Ubuntu 11.10 Gedit中文乱码解决办法

Gedit中文乱码问题已经困扰我好久了,之前的解决方案都是在gconf-editor的/apps/gedit-2/preferences/encodings接点添加GB18030,但是我升级到Ubuntu11.10后发现已经没有/apps/gedit-2/preferences/encodings这个节点了。 搜索之后才知道是因为gedit升级到3.X版本了,节点的位置改在了org/gnome/gedit/preferences/encoding。 所以方法就一样样的了 终端输入dconf-editor 展开org/gnome/gedit/preferences/encodings auto-detected的value中加入   'GB18030',   加在uft8后面; show-in-menu的value中加入'GB18030'

  • Leo Chen
    Leo Chen
1 min read
Python

python正则匹配非中文

今天弄了一套国外的商城程序看了下,总体感觉很好,就是汉化包不太爽,他的汉化形式是类似 $_['IP_Address'] = 'IP地址(IP Address)'; 这样的,中文后面跟一个括号里面是英文,所以我想用个程序把括号以及里面的英文去掉。 首先实现正则替换,核心代码如下: p = re.compile(ur"([a-zA-Z\u4e00-\u9fa5]+?)\s*?([^\u4e00-\u9fa5]*)",re.M) #[a-zA-Z\u4e00-\u9fa5]是匹配前面的汉语翻译

  • Leo Chen
    Leo Chen
1 min read