很多站长朋友们都不太清楚php打印字符编码,今天小编就来给大家整理php打印字符编码,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php获取字符编码的问题 2、 PHP for循环输出字符串乱码 3、 php怎么设置编码 4、 如何用 PHP 搞定中文字符编码问题 5、 PHP 输出简单的中文 乱码问题 6、 php中有关字符编码的问题? php获取字符编码的问题啊=>'0x3021'
这是区位码,还是国标码,要是的还真没办法.
在PHP中,可以取汉字的内码
echo bin2hex('啊');
我也只能做到这一步,你再找接下去方法.
echo str_decode('啊');
function str_decode($strval){
$a=bin2hex($strval);
$a1=substr($a,0,2);
$a2=substr($a,2,2);
$a1=strval(decbin(hexdec($a1)));
$a2=strval(decbin(hexdec($a2)));
$c='0';
$b1=substr_replace($a1,$c,0,1);
$b2=substr_replace($a2,$c,0,1);
$b=dechex(bindec($b1)).dechex(bindec($b2));
return "ox".$b;
}
不够简练,你在完整下.
注意文件必须以GBK形式保存,才能取得国标码.
思路是,先取得汉字的内码,再根据内码和国标码的关系,先把内码分成两部分,再转换成二进制,用替换函数把最高位换成'0',这样就得到国标码的二进制了,下面的过程就相反.
PHP for循环输出字符串乱码利用php内置方法mb_substr截取不乱码;
1、GBK编码截取示例:
$str = '我是谁'; //gbk编码的字符串
echo mb_substr($str, 0, 1, 'gbk'); //输出 我
mb_substr方法比substr多一个参数,用来指定字符串编码。
2、utf-8编码截取示例:
[code]
$str = '我abc是谁'; //utf-8编码的字符串
echo mb_substr($str, 0, 2, 'utf-8'); //输出 我a
[/code]
中英混合也完全没有问题。
php怎么设置编码header("Content-type: text/html; charset=utf-8");
另外你的编辑器编码也要对应哦
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头 :header(“Content-Type: text/html; charset=utf-8"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。
最近需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错。解决方法很简单,就是在 需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后,如下:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
如何用 PHP 搞定中文字符编码问题在PHP文件开头写上这一句:
header('Content-type:text/html; charset=utf-8'); 基本上都能解决中文字符编码问题,如果是数据库的原因,那在数据库连接的时候也要设置编码mysqli_set_charset('set names utf8');
PHP 输出简单的中文 乱码问题解决php中中文乱码问题方法
php文件本身的编码与网页的编码应匹配
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头:header(“Content-Type: text/html; charset=utf-8"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,如果使用session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->UTF-8签名,选择总是删除,再保存就可以去掉BOM信息了。
php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。
如果你的HTML文件文件出现了乱码问题,那么你可以在head标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。
扩展资料:
解决PHP 输出简单的中文 乱码问题的其他方法:
在php的echo前面加入header("Content-Type:text/html;charset=gb2312")
把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />中的UTF-8改成gb2312
参考资料:
百度百科-PHP
php中有关字符编码的问题?都设置了UTF8
你要注意一下,有一个是看不到的UTF8字符集设置,那就是传输字符集!
您可以在你的连接数库配置文件中执行一名set names utf8试试,
当然还有一是PDO的设置$pdo->set_charset(“utf8”)两个都可以。
去百度文库看一下我上传的“UTF8中文乱码问题终结方案 简明5步完全搞定”,严格按步骤检查一下。不过,你这个问题应该就是:传输字符集的问题。
关于php打印字符编码的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php打印字符编码 php输出文字乱码的详细内容...