php如何输出gb2312编码对应的汉字?
发布网友
发布时间:2022-04-06 01:15
我来回答
共9个回答
热心网友
时间:2022-04-06 02:44
用chr函数输出。别听1-2楼瞎说!他们都没做过PHP开发。
汉字由于是双字节,所以要一个字节一个字节的输出,并且编码是16进制的,因此需要按下面这样输出。
复制下面的代码运行:
<?php
$chars = '你好';
$text = '';
$codes = array ();
for ($i = 0; $i < strlen( $chars ); $i++) {
$c = ord ( substr ( $chars, $i, 1 ) );
$text .= chr ( $c );
$codes [] = $c;
}
echo ( $text );
?>
同时,请注意,php对于汉字的ASCII码根据PHP文件的编码不同,是不一样的。要获取其编码,使用ord()函数,但是ord函数只返回首个字符的ASCII码
如果你知道 ASCII码,也可以通过 pack 函数打包以后作为字符串输出
热心网友
时间:2022-04-06 04:02
"啊"字的gb码不是B0A0,而是B0A1。 害我奇怪了一阵
如果存在"所输入16进制串是正确无误"的前提:
//这个是最直接、最标准的转换做法,而且是可逆的
echo pack('H*',‘B0A1’); //显示, 啊
$c=unpack('H*','啊'); //逆转换
echo $c[1]; //显示 b0a1
热心网友
时间:2022-04-06 05:37
应该是用urlencode进行过编码,B0A0 不是 啊,啊 应该是 B0A1
function addPercent($str) {
$data = '';
for($i = 0; $i < strlen($str); $i+=2) {
$data .= "%".$str[$i].$str[$i+1];
}
return $data;
}
$string = addPercent('B0A1');
echo urldecode($string);
// 输出 啊
热心网友
时间:2022-04-06 07:28
试一下代码:
$str = "这%里是^测&试*中$心,欢.迎e你4的6到k来,我r们awe这y里wet一ef直在努力gr着找寻最佳gr的伙伴,希望您的$$%加盟可以@推动我们GH团队高速发展!";
$code = "/[".chr(0xa1)."-".chr(0xff)."]+/";
preg_match_all($code,$str, $arr); //GB2312汉字字母数字下划线正则表达式
print_r($arr);
热心网友
时间:2022-04-06 09:36
先进行转换编码格式,有对应的函数,你去网上查一下就知道了!
热心网友
时间:2022-04-06 12:01
echo iconv("ISO-8859-1", "UTF-8", "This is a test.");
热心网友
时间:2022-04-06 14:42
转换一下编码格式
热心网友
时间:2022-04-06 17:40
参考这里
参考资料:http://zhidao.baidu.com/question/98670899.html
热心网友
时间:2022-04-06 20:55
你输出的是什么啊?乱码吗?
PHP中当前文件为GBK或GB2312编码,怎么用正则表达式取汉字
chn = str_replace('/[^\u4E00-\u9FA5]/','', $str);} 判断是否有中文,$chn=过去非中文字符
【菜鸟问题】php 正则表达式匹配汉字,求助,编码是GB2312
[a-z](?=\s*\+)|(?<=\+\s*)[a-z]
PHP 输出简单的中文 乱码问题
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。b. 如果欲使用utf-8编码,那么php要输出头:header(“Content-Type: text/html; charset=utf-8"),...
如何读取php返回编码为gb2312的xml数据
出错的原因在于PHP程序输出编码和XML文件的编码不一致所导致 方法一: 使用utf-8编码,修改方法如下: 一.把两个gb2312改为utf-8 二.在xml文件上点右链,选择用记事本打开,另存为,编码由ansi改为,覆盖保存。 方法二: 直接设置PHP文件格式为 ...
用PHP从数据库中取出的中文是乱码,怎么处理能使中文正常显示?
数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的...
php程序usc2编码如何转换成ansi简体中文编码?
//中文字符编码转换 public function safeEncoding($string,$outEncoding ='GB2312'){ encoding = "UTF-8";for($i=0;$i<strlen($string);$i++){ if(ord($string{$i})<128)continue;if((ord($string{$i})&224)==224){ //第一个字节判断通过 char = $string{++$i};if((ord($...
php中echo出来的汉子乱码!请问怎么解决?
header("Content-type: text/html; charset=gb2312");echo "汉字";?> 然后,注意,保存文件的时候,使用ansi编码,不要使用utf-8~这样,就能保证你输出的是中文了。dw在 编辑、首选项里面 新建文件 里面有有关编码的设置。如果是用记事本,默认保存为 ansi~不好意思,打错了 那个地方应该是 text...
用php可不可以把汉字转换成字母数字形式?
1先导入这个文件,include pinyin.php 2,使用函数转换,在echo后写入待转换中文,即可输出为汉字的拼音形式。全部为字母。3,echo('汉字转换拼音')---输出为hanzizhuanhuanpinyin PHP汉字转换函数文件pinyin.php如下。如果想编辑,可使用editplus打开。<?php function Pinyin($_String, $_Code='gb2312'...
php文件编译时中文出现乱码情况怎样解决???
php查询问题?都有值?username varchar(255) gb2312_chinese_ci_百度知 ...
如果在vs_team表中,username里的数据记录里录入的是'龙飞',而不是'longfei',那么前一个当然能查到,后一个查不到。