Heim >Backend-Entwicklung >PHP-Tutorial >php字符编码转换方法浅谈

php字符编码转换方法浅谈

WBOY
WBOYOriginal
2016-07-25 08:53:50974Durchsuche
  1. print_r(iconv_get_encoding("all"));
复制代码

2,对指字符串进行编码转换:

  1. echo iconv('utf-8','gb2312','我们');        //把‘我们’由utf8编码转换为gb2312编码
  2. **iconv(in_charset,outcharset//TRANSLIT//IGNORE,$string);//'TRANSLIT':如果在输出的编码格式中不含有的字符,可以在类似编码中查找取代;'IGNORE':如果输出格式编码中不含有字符串中的某字符时,能够跳过进行后面字符的编码。否则在转码失败处会中断输出,产生错误。
复制代码

3,将字符串进行编码转换(可自动判断编码类型,但听说效率没有iconv好。)

  1. mb_convert_encoding(‘我们’, 'utf-8','gb2312' );  //将‘我们’由gb2312转换为utf8
  2. mb_convert_encoding(‘我们’, 'utf-8');       //将‘我们’转换成utf8编码格式
  3. $str = mb_convert_encoding($str, "EUC-JP", "auto");
  4. $str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
  5. **第三个参数还可以是array()形式
复制代码

说到mb_convert_encoding编码转换函数的用法,可以阅读下:

  • php编码转换函数mb_convert_encoding与iconv
  • php编码转换函数mb_convert_encoding与iconv使用说明

4,设置编码格式:

  1. iconv_set_encoding("internal_encoding", "UTF-8");   //设置内部编码为utf8
  2. iconv_set_encoding("output_encoding", "ISO-8859-1"); //设置输出编码为ISO-8859-1
  3. 设置选项:1.input_encoding 2.output_encoding 3.internal_encoding
  4. **ISO-8859-1编码是单字节编码,向下兼容ASCII, Latin1是ISO-8859-1的别名
复制代码

5,查看字符串编码方式: 格式:string mb_detect_encoding(string$str[,mixed$encoding_list= mb_detect_order()[,bool$strict= false]] )

  1. $str='编码方式';
  2. echo mb_detect_encoding($str);  //:UTF-8
  3. echo mb_detect_encoding($str, "auto");
  4. echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");
  5. $ary[] = "ASCII";
  6. $ary[] = "JIS";
  7. $ary[] = "EUC-JP";
  8. echo mb_detect_encoding($str, $ary);
复制代码

6,查看文件编码方式:

  1. $file = 'text3.txt';
  2. echo getFileEncoding(file_get_contents($file)); // 输出UTF-16LE
复制代码

7,判断字符串是否符合指定格式编码: 格式:bool mb_check_encoding([string$var=NULL[,string$encoding= mb_internal_encoding()]] )

  1. $string="\x00\x81";
  2. $encoding="Shift_JIS";
  3. mb_check_encoding($string,$encoding)   //:true
复制代码

8,单个或多个变量的字符编码转换: 格式:stringmb_convert_variables(string$to_encoding,mixed$from_encoding,mixed&$vars[,mixed&$...] ) **$from_encoding:可以是数字形式,用逗号分隔字符串或结构体形式。

  1. $str1= '测试编码';$str21= '测试编码2';
  2. $inputenc = mb_convert_variables("UTF-8", "UTF-8,GBK,GB2312", $str1, $str2);
  3. var_dump($inputenc);    //: string(5) "UTF-8"
  4. var_dump($str1);      //: string(12) "测试编码"
  5. **CP936是GBK
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn