文件编码格式转换方法
乱码基本就一个原因:文件存的时候是啥编码,打开时用的不是这个。常见就 UTF-8、GBK、GB2312 三种,老网站、老传奇脚本大多是 GBK,现在新东西一律 UTF-8。
小文件最省事:记事本打开 → 另存为 → 右下角编码选 UTF-8 保存。Notepad++ 直接菜单「编码」→「转为 UTF-8 编码」,注意是「转为」不是「使用」,前者真改文件内容,后者只是换个方式显示。
服务器上的文件用 iconv,Linux 自带不用装:
iconv -f GBK -t UTF-8 old.txt -o new.txt # GBK 转 UTF-8
for f in *.txt; do iconv -f GBK -t UTF-8 "$f" -o "utf8_$f"; done # 批量转一遍PHP 里转换,记得开 mbstring 扩展:
<?php
$str = file_get_contents('a.txt');
$str = mb_convert_encoding($str, 'UTF-8', 'GBK'); // 从 GBK 转 UTF-8
file_put_contents('b.txt', $str);
?>坑:UTF-8 带 BOM 会让 PHP 页面头部多出空白、session 直接报错,转完用编辑器去掉 BOM。数据库统一 utf8mb4,别用 utf8,不然表情和生僻字存不进去。
说点什么 0