php_字符编码

简介:

1.查看页面输入,内部,输出编码:

print_r(iconv_get_encoding("all"));

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

echo iconv('utf-8','gb2312','我们');        //把‘我们’由utf8编码转换为gb2312编码

**iconv(in_charset,outcharset//TRANSLIT//IGNORE,$string);//'TRANSLIT':如果在输出的编码格式中不含有的字符,可以在类似编码中查找取代;'IGNORE':如果输出格式编码中不含有字符串中的某字符时,能够跳过进行后面字符的编码。否则在转码失败处会中断输出,产生错误。

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

mb_convert_encoding(‘我们’, 'utf-8','gb2312' );  //将‘我们’由gb2312转换为utf8

mb_convert_encoding(‘我们’, 'utf-8');       //将‘我们’转换成utf8编码格式

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str"EUC-JP""auto");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str mb_convert_encoding($str"UCS-2LE""JIS, eucjp-win, sjis-win");

**第三个参数还可以是array()形式

4.设置编码格式:

iconv_set_encoding("internal_encoding""UTF-8");   //设置内部编码为utf8
iconv_set_encoding("output_encoding""ISO-8859-1"); //设置输出编码为ISO-8859-1

设置选项:1.input_encoding 2.output_encoding 3.internal_encoding

**ISO-8859-1编码是单字节编码,向下兼容ASCII, Latin1是ISO-8859-1的别名

5.查看字符串编码方式:

格式:string mb_detect_encoding(string$str[,mixed$encoding_list= mb_detect_order()[,bool$strict= false]] )

$str='编码方式';

echo mb_detect_encoding($str);  //:UTF-8

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
echo mb_detect_encoding($str"auto");

/* Specify encoding_list character encoding by comma separated list */
echo mb_detect_encoding($str"JIS, eucjp-win, sjis-win");

/* Use array to specify encoding_list  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str$ary);

6.查看文件编码方式:

$file = 'text3.txt';
echo getFileEncoding(file_get_contents($file));  // 输出UTF-16LE

7.判断字符串是否符合指定格式编码:

格式:bool mb_check_encoding([string$var=NULL[,string$encoding= mb_internal_encoding()]] )

$string="\x00\x81";
$encoding="Shift_JIS";

mb_check_encoding($string,$encoding)   //:true

8.单个或多个变量的字符编码转换

格式:stringmb_convert_variables(string$to_encoding,mixed$from_encoding,mixed&$vars[,mixed&$...] )

**$from_encoding:可以是数字形式,用逗号分隔字符串或结构体形式。

$str1= '测试编码';$str21= '测试编码2';

$inputenc = mb_convert_variables("UTF-8", "UTF-8,GBK,GB2312", $str1, $str2);

var_dump($inputenc);    //: string(5) "UTF-8"
var_dump($str1);      //: string(12) "测试编码"

 

**CP936是GBK

文章来源:http://www.cnblogs.com/gaoshicai/archive/2012/06/14/2548976.html

本文转自  ttlxihuan    51CTO博客,原文链接:http://blog.51cto.com/php2012web/1433606

相关文章
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
php案例:判断这个是繁体字还是简体字(满足绝大部分字符)用php函数
|
9月前
|
编解码 前端开发 PHP
PHP字符编码判断猝不及防之坑
小马曾经有讲过PHP函数mb_detect_encoding误判带来的坑,今天再来讲讲这个函数的惊天秘密。你准备好了吗?
62 0
PHP字符编码判断猝不及防之坑
|
SQL 安全 PHP
解析php安全性问题中的:Null 字符问题
解析php安全性问题中的:Null 字符问题
100 0
|
PHP
php转换文本编码,php字符编码转换,php编码转换
php转换文本编码,php字符编码转换,php编码转换
70 0
|
PHP
PHP字符串学习之怎么去除其他字符,只留下数字
在之前的文章《PHP字符串学习之将字符串分成更小长度的子串》中,我们介绍了分割字符串,将字符串分成更小子串的方法。这次继续PHP字符串的学习与练习,看看如何提取字符串中的数字字符,有需要的可以参考参考~ 本文的主题是:“提取字符串中的数字字符”。例如我们给出下面一个字符串 $str ='0我是123456一段测试的字789符串0'; 如何去除其他字符,只返回由字符串中数字字符组成的子串“01234567890”?下面给大家介绍两种方法:
242 0
|
PHP
如何通过PHP查找给定字符串中的第一个非重复字符
新的一周又开始啦~大家应该都知道关于PHP中字符串的操作是程序设计中比较关键也是最基础的部分,那么在后面的文章中会陆续给大家介绍关于字符串的基础操作,相信总有你能掌握到的技巧~ 那么本文的主题则是“编写一个PHP程序来查找给定字符串中的第一个非重复字符”。 对于非重复字符,应该不必过多解释,比如字符串“adicvdda”,肉眼可见第一个非重复字符就是i,因为字符a和d都是重复的。 下面我们就给大家介绍怎么通过PHP来实现这个操作。
208 0
|
PHP
PHP字符串学习之利用正则过滤字符,返回数字字符
在之前的文章《PHP字符串学习之怎么去除其他字符,只留下数字》中,我们介绍了利用for循环和in_array()或is_numeric()函数来提取字符串中数字字符的方法。这次我们继续PHP字符串的学习与练习,介绍一下提取字符串中数字字符的另几种方法。 提取字符串中数字字符,本质上就是字符串过滤操作。看到字符串过滤,我就想起了 “正则表达式”。
330 0
|
PHP
PHP快速实现删除空、制表符、换行符等特殊字符(两种方法)
上一篇文章《PHP数学函数实践四:将浮点数从零舍入到指定的小数位数》给大家介绍了怎么浮点数从零舍入到指定的小数位数,感兴趣的朋友可以了解学习一下~ 那么本文将给大家介绍解决一个在平时开发过程中非常常见的一个问题,就是如何从字符串中删除特殊字符! 在本文涉及到的特殊字符包括:空(“\0”)、水平制表符(“\t”) 、换行符(“\n”) 、垂直制表符(“\v” ) 和ESC(“\e”)。
347 0
|
PHP
PHP md5函数 的16位字符乱码问题解决
乱码 PHP的md5函数用于对字符串参数进行md5运算,该函数有两个参数: md5 ( string $str [, bool $raw_output = FALSE ] ) : string 第一个参数是输入字符串;第二个参数默认为FALSE,设置为TRUE时可以输出16位的md5值。
1583 0