zoukankan      html  css  js  c++  java
  • 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]

  • 相关阅读:
    作业11
    作业10总结
    作业10
    作业9总结
    作业9
    作业8总结
    作业8
    实验7总结
    实验6总结
    史航第12次作业&总结
  • 原文地址:https://www.cnblogs.com/chrdai/p/6090336.html
Copyright © 2011-2022 走看看