时间:2021-07-01 10:21:17 帮助过:21人阅读
//读取是进行转换 private string ISO8599ToUTF8(string str) { Encoding UTF_8 = System.Text.Encoding.GetEncoding("utf-8"); Encoding ISO = System.Text.Encoding.GetEncoding("iso8859-1"); byte[] iso = ISO.GetBytes(str); return UTF_8.GetString(iso); }
你先从数据库取出乱码字段的字段内容,比如保存到 $s
然后 echo base64_encode($s); 贴出结果
谢谢你的回复,你看显示的就是这个效果“ÕÛÒíÌìʹ”,肯定不会base64编码了
假设你的乱码内容在 $s 中,那么
echo base64_encode($s);
贴出结果
* 是这个吧?
你贴出的“乱码”的十六进制内码为 efbbbfc395c39bc392c3adc38cc3acc38ac2b9
其中 efbbbf 是 utf-8 字符集的 BOM 头
显然你在读取数据前执行了 set names utf8 指令
而 c395c39bc392c3adc38cc3acc38ac2b9 是 latin1 字符转换成 utf-8 编码的结果
latin1 (通用欧洲字符集1)就是 iso 8859-1
经过 iconv('utf-8', 'latin1', substr($s,3));
转码后得到的就是 * 其十六进制内码为 d5dbd2edcceccab9
显然是一个 gbk 编码的串
斑竹威武,谢谢