Saber 酱的抱枕

Fly me to the moon

12/2
2016
软件

使用ConvertZ批量转换网页编码

ConvertZ(最新版本8.02)是一款适用于中文文本的Big5/GBK/Unicode/UTF8内码转换器,十分好用。

我有时需要对整个网站内容进行批量替换,但如果网页编码是gbk(或gb2312)的,我就会感到有点头疼。我使用的编辑器sublime text3虽然有插件使它可以支持gbk编码,但这个插件并不可靠,偶尔会导致文件保存时变成乱码,十分坑爹。而ConvertZ则可以方便的将html文件批量转码,这使我十分感动。

使用步骤如下:

使用ConvertZ批量转换网页编码

首先点击1,选择要转换的文件所在的文件夹。
之后点击2,选择需要转换的文件类型。
之后点击3,选择输出文件夹。
之后点击4(加入按钮)上面的加入按钮不会添加子文件夹里的文件,下面的则会添加子文件夹里的文件,按需使用。
之后到区域5选择转码转换方向(gb2312选择gbk就行),如果需要的话可以点击“进阶选项”选择更多编码类型。
最后点击6,即可开始转换。

转换速度很快,而且如果使用了“包含子目录”的加入按钮,那么转换后的文件还会按原文件夹结构存放,实在是方便。确认转换无误后覆盖掉原文件夹就行了。

对于html文件来说,用ConvertZ2转换成utf-8编码的话,除了内码变化之外(utf-8的文件体积比gbk的文件体积要大),charset也会自动更改为“utf-8”,很省心。

ps:第2步那里可以点击左侧的蓝色按钮添加自己需要的文件类型:

使用ConvertZ批量转换网页编码

使用ConvertZ批量转换网页编码

05/22
2016
学习

php使用iconv转换编码时忽略错误字符的办法

我在做pixiv图片下载器的时候,需要用php在硬盘上建立文件夹。有些文件夹的名字含有中文,那就需要转换为gbk编码,不然出来是乱码。

之前我是这样转换的:

iconv('utf-8', 'gbk', "【20周年♡】魔卡少女樱特辑");

但有时候会遇到问题,例如上面“周年”后面的心,在gbk里面没有,转换的时候会出错。一旦出错,这条语句就停止执行了,我们只能得到前半截“【20周年”,后面什么都没了。

今天这个现象又发生了,上网查了查,原来加上ignore参数就可以忽略出错的字符,继续转换。

iconv('utf-8', 'gbk//ignore', "【20周年♡】魔卡少女樱特辑");

现在,这个心会被忽略掉,我们能得到较为满意的结果“【20周年】魔卡少女樱特辑”。

另外还有个参数//TRANSLIT是遇到错误时替换为相近的字符,但是这个效果很难说啊,我是没有用。

php使用iconv转换编码时忽略错误字符的办法