本文目录一览:
- 1、PHP文件里要输出的中文在浏览器里显示乱码
- 2、用php编写的网页如果url中包含汉字则报错
- 3、PHP url解码后中文乱码 GBK
- 4、php自动跳转传值乱码
- 5、如何解决php中文参数传递乱码情况
- 6、PHP中json_encode中文乱码问题
PHP文件里要输出的中文在浏览器里显示乱码
1、版权所有 是模板页面直接输出,你的页面设置了UTF8编码所以没问题 。
2、张三 是PHP文件中用函数的方式存在变量中的,问题出在PHP文件中。
解决办法:
第一步
?php
header("content-Type: text/html; charset=Utf-8"); //设置字符的编码是utp-8
mysql_query('set names utf8');
?
*************************************************************************************************
如果这样还不行,第二步
?php
$temp=utf8Encode('张三');
$template-setVariable("CUSTOMERNAME",$temp);
?
************************************************************************************************
如果这样还不行,第三步
php页面
?php
$temp=urlencode('张三');
$template-setVariable("CUSTOMERNAME",$temp);
?
模板页面
输出时用urldecode函数解码
******************************************************************************************************-urldecodephp乱码
如果这样还不行,第四步
结合第三步,用mb_convert_encoding或者iconv函数。这两个函数的用法你百度一下就知了。
******************************************************************************************************-urldecodephp乱码
如果这样还不行,第五步
我也没办法啦,555555
用php编写的网页如果url中包含汉字则报错
用urldecode()编码下
比如:a
href="aaa.php?region=四川省"aaa/a
链接到aaa.php中处理时就有乱码问题
这样就可以:
?php
$url
=
'aaa.php?region='.urldecode("四川省");
?
a
href="?php
echo
$url;?"aaa
/a
PHP url解码后中文乱码 GBK
xml文件保存的是什么编码?最好将xml编码也保存和服务器编码一致。
php自动跳转传值乱码
传值正能是英文,传中文的话先把中文编码:urlencode();接到数据后再urldecode()转换成中文
string urldecode ( string str )
解码给出的已编码字符串中的任何 %##。返回解码后的字符串。 例子 1. urldecode() example
?php
$a = explode('', $QUERY_STRING);
$i = 0;
while ($i count($a)) {
$b = split('=', $a[$i]);
echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
' is ', htmlspecialchars(urldecode($b[1])), "br /\n";
$i++;
}
?
string urlencode ( string str )
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页: 例子 1. urlencode() 示例-urldecodephp乱码
?php
echo 'a href="mycgi?foo=', urlencode($userinput), '"';
?
如何解决php中文参数传递乱码情况
php用中文参数没问题的 问题出在别处 比如显示页的编码 如果你找不到问题所在 可以用 base64_encode($tag)处理一下$tag 接收的时候再用 base64_decode($tag)即可-urldecodephp乱码
PHP中json_encode中文乱码问题
php 中使用 json_encode() 内置函数(php 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式
$arr = array ('a'=1,'b'=2,'c'=3,'d'=4,'e'=5);
echo json_encode($arr);
//结果
//{"a":1,"b":2,"c":3,"d":4,"e":5}
/*
下面看一款json_encode中文乱码问题
解决方法是用urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来-urldecodephp乱码
*/
function arrayrecursive($array, $function, $apply_to_keys_also = false)
{
static $recursive_counter = 0;
if (++$recursive_counter 1000) {
die('possible deep recursion attack');
}
foreach ($array as $key = $value) {
if (is_array($value)) {
arrayrecursive($array[$key], $function, $apply_to_keys_also);
} else {
$array[$key] = $function($value);
}
if ($apply_to_keys_also is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
/**************************************************************
*
* 将数组转换为json字符串(兼容中文)
* @param array $array 要转换的数组
* @return string 转换得到的json字符串
* @access public
*
*************************************************************/
function json($array) {
arrayrecursive($array, 'urlencode', true);
$json = json_encode($array);
return urldecode($json);
}
$array = array
(
'name'='希亚',
'age'=20
);
echo json($array);
//应用实例
$servname="localhost";
$sqlservname="root";
$sqlservpws="123456";
$sqlname="lock1";
$db=mysql教程_connect($servname,$sqlservname,$sqlservpws) or die("数据库教程连接失败");
mysql_select_db($sqlname,$db);
$sql = "select * from t_operater";
$result =mysql_query($sql);
$rows = mysql_num_rows($result);
while($obj = mysql_fetch_object($result))
{
$arr[] = $obj;
}
echo '({"total":"'.$rows.'","results":'.json_encode($arr).'})';