php转换字符编码
① 中文url编码、base64编码,php解码中文部分乱码
如果两端服务器页面使用的编码不一致,就会导致乱码
如你所说,对方服务器发来的是GBK编码的内容,如果你本地PHP用的编码不是GBK就会是乱码
2种解决方案:
将页面编码更改为GBK(可以通过header('Content-Type:text/html charset=gbk');)
将GBK编码转为当期页面编码(假设当前页面是utf-8),可以使用iconv('gbk','utf-8',$content);其中$content是你经过urldecode、base64解码后的字符串
② PHP 转换中文为编码
给个转码的方法给你吧! 你可以自己修改$outEncoding的参数,下面的方法默认是转换为gb2312的字符集了,你调用方法就可以将你的字符串转换字符
//中文字符编码转换
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($char)&128)==128)
{
//第二个字节判断通过
$char = $string{++$i};
if((ord($char)&128)==128)
{
$encoding = "UTF-8";
break;
}
}
}
if((ord($string{$i})&192)==192)
{
//第一个字节判断通过
$char = $string{++$i};
if((ord($char)&128)==128)
{
// 第二个字节判断通过
$encoding = "GB2312";
break;
}
}
}
if(strtoupper($encoding) == strtoupper($outEncoding))
return $string;
else
return iconv($encoding,$outEncoding,$string);
}
③ php 将中文转换为GBK编码
1、运行控制台,程序->运行,输入CMD,点击确定进入DOS操作系统 快捷键windows键+R键。
④ 如何把读取URL汉字转化成UTF-8格式
在PHP中,将读取的URL中的汉字转换为UTF-8格式,通常会使用iconv函数。假设从URL中读取到的字符串编码为GBK,可以使用如下代码进行转换:
$str = iconv('GBK', 'UTF-8', $str);
这里,iconv是PHP内置函数,用于转换字符编码。'GBK'代表原编码,'UTF-8'为目标编码,$str是需要转换的字符串。
转换后的字符串将使用UTF-8编码,可以用于进一步处理或显示。
需要注意的是,在进行编码转换时,确保输入字符串的原始编码正确,否则可能会导致乱码。
此外,除了iconv,PHP还提供了mb_convert_encoding函数,其使用方式类似:
$str = mb_convert_encoding($str, 'UTF-8', 'GBK');
两种方法在大多数情况下可以互换使用,但iconv在处理某些特殊字符时表现更佳。
进行编码转换时,还需注意字符集的设置。在PHP配置文件php.ini中,确保设置正确的默认字符集,以避免潜在的问题。
总之,通过上述方法,可以轻松地将URL中的汉字从GBK编码转换为UTF-8格式,确保其在各种系统和应用程序中都能正确显示。