• 字符集转换


    /* 显示当前的检测顺序 */
    echo implode(", ", mb_detect_order());

    mb_detect_encoding:检测字符编码

    mb_detect_order可以设定检测字符的循序

    mb_detect_order('ASCII,ANSI,GB2312,BIG5,GBK,GB18030,Unicode,UTF-8,UTF-16,UTF-32');

    GB18030      CP54936

    GBK             微软Windows中现在的CP936

    GB2312       微软Windows中以前的CP936  EUC-CN

    https://www.crifan.com/chinese_character_encoding_standard__unicode__code_page/

    https://my.oschina.net/junn/blog/282160

    mb_detect_order — 设置/获取 字符编码的检测顺序

    该设置会影响 mb_detect_encoding() 和 mb_send_mail()

    对于 UTF-16UTF-32、 UCS2 和 UCS4,编码检测总是会失败。

    UTF-8UTF-7ASCIIEUC-JP,SJISeucJP-winSJIS-winJISISO-2022-JP

    对于 ISO-8859-*mbstring 总是检测为 ISO-8859-*

     

     

    阿萨德

    总是检测为 ISO-8859-1的情况:   detect_order = ISO-8859-1, UTF-8
    总是检测为 UTF-8,由于 ASCII/UTF-7 的值对 UTF-8 是有效的:detect_order = UTF-8, ASCII, UTF-7

     

    ASCII   英语

    ISO  欧洲语系

    Unicode,理论上包括了世界上所有的语言(少许如盲语,蒙语。苗语、高棉等少数不支持)

    UTF-8,针对Unicode的可变长字符集(万国语)

    GB2312  包含简体中文和英文

    GBK 或者是 GB18030含有简体和繁体和英文,三者的关系是 GB18030 > GBK > GB2312

    字符编码转换:

    iconv('GB2312', 'UTF-8//IGNORE', $str);      //将字符串的编码从GB2312转到UTF-8       c底层实现 转码速度快

    // utf8转gb2312 可能会被截断而报错;如utf8的中文字符”—”转换gb2312。可以加//IGNORE或者//TRANSLIT解决
    // //IGNORE 忽略不能转换的字符
    // //TRANSLIT如果在目标编码中找不到与源编码相匹配的字符,会选择相似的字符进行转换

    mb_convert_encoding(字符串,新编码,原编码,)   必须开启扩展才行,转码速度也比较慢 在不能转码的字符时会强制转换成x00x80,如从utf8转换成gbk时

    一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数

    iconv支持的字符集


    mbstring该 PHP 扩展支持的字符编码有以下几种: (即带有mb_xxx的函数) UCS-4* UCS-4BE UCS-4LE* UCS-2 UCS-2BE UCS-2LE UTF-32* UTF-32BE* UTF-32LE* UTF-16* UTF-16BE* UTF-16LE* UTF-7 UTF7-IMAP UTF-8* ASCII* EUC-JP* SJIS* eucJP-win* SJIS-win* ISO-2022-JP ISO-2022-JP-MS CP932 CP51932 SJIS-mac** (别名: MacJapanese) SJIS-Mobile#DOCOMO** (别名: SJIS-DOCOMO) SJIS-Mobile#KDDI** (别名: SJIS-KDDI) SJIS-Mobile#SOFTBANK** (别名: SJIS-SOFTBANK) UTF-8-Mobile#DOCOMO** (别名: UTF-8-DOCOMO) UTF-8-Mobile#KDDI-A** UTF-8-Mobile#KDDI-B** (别名: UTF-8-KDDI) UTF-8-Mobile#SOFTBANK** (别名: UTF-8-SOFTBANK) ISO-2022-JP-MOBILE#KDDI** (别名: ISO-2022-JP-KDDI) JIS JIS-ms CP50220 CP50220raw CP50221 CP50222 ISO-8859-1* ISO-8859-2* ISO-8859-3* ISO-8859-4* ISO-8859-5* ISO-8859-6* ISO-8859-7* ISO-8859-8* ISO-8859-9* ISO-8859-10* ISO-8859-13* ISO-8859-14* ISO-8859-15* ISO-8859-16* byte2be byte2le byte4be byte4le BASE64 HTML-ENTITIES 7bit 8bit EUC-CN* CP936 GB18030** HZ EUC-TW* CP950 BIG-5* EUC-KR* UHC (CP949) ISO-2022-KR Windows-1251 (CP1251) Windows-1252 (CP1252) CP866 (IBM866) KOI8-R* KOI8-U* ArmSCII-8 (ArmSCII8) * 表示该编码也可以在正则表达式中使用。 ** 表示该编码自 PHP 5.4.0 始可用。
  • 相关阅读:
    Git学习笔记(二)
    Git学习笔记(一)
    在Android中,px,dp,dip,sp的不同之处
    一些好的技术类博客和学习网站(持续更新中)
    nginx参数的详细说明
    Java中的多线程Demo
    Cygwin在线安装指南
    Java项目中的一些注意事项
    tomcat的常用配置
    Java数组初始化
  • 原文地址:https://www.cnblogs.com/lichihua/p/9606398.html
Copyright © 2020-2023  润新知