• php中文转换编码函数


       $filename= $list->filename;                 // 获取文件名字
            if(preg_match("/[x80-xff]/",$filename)){  // 如果是中文,将其转码
                $fileName=iconv("utf-8","gb2312",$filename);
            }else{
                $fileName = $filename;                  // 否则保存原文件名
            }

    GB2312(GBK)为了和 ASCII 兼容,使用了最高位为 1 的编码方式。

    你给出的链接是扩展的 ASCII 码表,标准的 ASCII 码表共 127 个字符,01 - 7F。

    0000 0001
    0000 0010
    ...
    ...
    ...
    0111 1111
    

    而 GBK 为了不和 ASCII 混淆,使用最高位的 1 来编码,占 2 个字节。这样,当进行编码解析的时候就简单的,如果遇到

    1. 最高位如果是 0 那么就是 ASCII 码。

    2. 如果最高位是 1 那就在继续读取下一个字节。

      1. 如果下一个字节最高位是 0,乱码。
      2. 如果下一个字节最高位是 1,则这两个字节对于一个汉字。

    因此,简单的匹配汉字的规则就是 [x80-xff]

  • 相关阅读:
    OkHttp的使用
    Adapter的实现
    RxJava的学习与实现
    Blueprint的实现
    The second group meeting!
    读书笔记1
    The First Team Meeting!
    java----使用NIO进行快速的文件拷贝
    java——类的学习(2)
    java——类的学习(1)
  • 原文地址:https://www.cnblogs.com/chrdai/p/6090336.html
Copyright © 2020-2023  润新知