您的位置:

php汉字转码,php拼音转汉字

本文目录一览:

php 能实现汉字转url编码的方法吗?

rawurlencode()函数即可!

示例:

function  raw( $String, $en = false) {

   return !$en ? rawurldecode( $Strint ) : rawurlencode( $String );

}  

echo raw('%E5%AE%A2%E6%88%B7');  //输出: 客户

echo raw('客户', true ); //输出:%E5%AE%A2%E6%88%B7

php json_encode使用中文不转码

PHP转JSON,中文会被转码成unicode,使用常量 JSON_UNESCAPED_UNICODE 可以使中文原样输入。

不使用 JSON_UNESCAPED_UNICODE

使用 JSON_UNESCAPED_UNICODE

Json在 5.4 还加入了: JSON_BIGINT_AS_STRING , JSON_PRETTY_PRINT , JSON_UNESCAPED_SLASHES 等选项, 如果有兴趣, 大家可以参看: json_encode

其中有2个比较常用到的参数

JSON_UNESCAPED_UNICODE (中文不转为unicode ,对应的数字 256)

JSON_UNESCAPED_SLASHES (不转义反斜杠,对应的数字 64)

通常json_encode只能传入一个常量,如果同时使用2个常量怎么办?

JSON_UNESCAPED_UNICODE + JSON_UNESCAPED_SLASHES = 320

使用方法:json_encode($arr,320);即可完成同时使用2个常量。

PHP5.4才支持 JSON_UNESCAPED_UNICODE 这个参数,此参数是让中文字符在json_encode的时候不用转义,减少数据传输量。

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搜索 繁体怎么转成简体

PHP实现---汉字简体繁体转换

这是以class包装好的简繁体转换的class,

另外需要两个table档:

1. 

2. 

程式如下: CCharset.php3

? //=====================================================

// 程式员: Magic Jerry

//

// function Big5_Gb($str) = big5转GB for string

// function Gb_Big5($str) = GB转Big5 for string

//=====================================================

class CCharset {

var $gb_map="gb.map"; //如果要放到别的路径,要加上完整路径

var $big5_map="big5.map"; //例如 ="/home/table/gb.map

var $dep_char = 127;

//-----------------------------------------------------------------

function cbig5_gb($str,$fd) {

$c=ord(substr($str,0,1));

$x=ord(substr($str,1,1));

$address=(($c-160)*510)+($x-1)*2;

fseek($fd, $address);

$hi=fgetc($fd);

$lo=fgetc($fd);

return "$hi$lo";

}

function cgb_big5($str,$fd) {

$c=ord(substr($str,0,1));

$x=ord(substr($str,1,1));

$address=(($c-160)*510)+($x-1)*2;

fseek($fd, $address);

$hi=fgetc($fd);

$lo=fgetc($fd);

return "$hi$lo";

}

//-----------------------------------------------------------------

function Big5_Gb($str) {

$fd = fopen ($this-gb_map, "r");

$str=str_replace("charset=big5","charset=gb2312", $str);

$outstr="";

for($i=0;$istrlen($str);$i++) {

$ch=ord(substr($str,$i,1));

if($ch  $this-dep_char) {

$outstr.=$this-cbig5_gb(substr($str,$i,2),$fd);

$i++;

} else {

$outstr.=substr($str,$i,1);

}

}

fclose ($fd);

return $outstr;

}

//-----------------------------------------------------------------

function Gb_Big5($str) {

$fd = fopen ($this-big5_map, "r");

$str=str_replace("charset=gb2312","charset=big5", $str);

$outstr="";

for($i=0;$istrlen($str);$i++) {

$ch=ord(substr($str,$i,1));

if($ch  $this-dep_char) {

$outstr.=$this-cgb_big5(substr($str,$i,2),$fd);

$i++;

} else {

$outstr.=substr($str,$i,1);

}

}

fclose ($fd);

return $outstr;

}

}

?

===================================================================

使用范例:

?

// Designer: Magic Jerry

//====直接转换文字串 的使用方法========

include("CCharset.php3");

$obj=new CCharset;

$big5="这是一个big5的文字串";

$tgb=$obj-Big5_Gb($big5);

echo $tgb; //=== $tgb为转换好的gb码字串

$tbig5=$obj-Gb_Big5($tgb);

echo $tbig5; // 又被转回来了: big5

//======================================

?

?

//如果直接转换网页 或是档案

// 语法 这个程式.php3?http://要转码的网页url或档案

// example: 转换奇摩首页

// 这个程式.php3?

// 注意: 以下写法如遇到该网页有使用cookie,例如认证user,可能会被踢回,login错误..

// 为什麼? 想想看吧... @_@

include("CCharset.php3");

$file=$QUERY_STRING;

$fcontents = join( '', file( "$file" ) );

$fcontents=str_replace("head","headbase href=$file", $fcontents);

$code=new CCharset;

$gb=$code-Big5_Gb($fcontents);

echo $gb;

?

范例:

?

if($func=="charset") {

setcookie("CHAR_GB",$GB,time()+ 31536000);

$t=time();

$url="http://".$HTTP_HOST.$PHP_SELF."?".$QUERY_STRING;

$url=str_replace("?func=charsetGB=1","", $url);

$url=str_replace("?func=charsetGB=0","", $url);

$url=str_replace("func=charsetGB=1","", $url);

$url=str_replace("func=charsetGB=0","", $url);

//echo $url;

//echo "SET to Charset = $CHAR_GB";

$t=time();

echo "

script language=javascript

document.location='$url'

/script

";

exit;

}

//phpinfo();

if($CHAR_GB==1  !$istran ) {

include("CCharset.php3");

if(strlen($QUERY_STRING)) $url="http://".$HTTP_HOST.$PHP_SELF."?".$QUERY_STRING."istran=1";

else $url="http://".$HTTP_HOST.$PHP_SELF."?istran=1";

while (list ($key, $val) = each ($HTTP_COOKIE_VARS)) {

//echo "$key = $valbr";

$url.="".$key."=".urlencode($val);

}

$fcontents = join( '', file( "$url" ) );

$code=new CCharset;

$fcontents=$code-Big5_Gb($fcontents);

//echo "转换过的 $CHAR_GB";

echo $fcontents;

exit;

}

/

php中中文如何转码

应该是没有URL编码(一般来说,用默认字符集是没有问题的)。

URL编码/解码,可用函数urlencode()与urldecode()。

还有一个小问题,你有个地方打错了,在表单中把playerName打成了playerNmae,而iframe的URL中却是playerName。

iframe代码改为(你的拼写错误已修正):

iframe id="aaa" name="aaa" width="600" height="500" src="网址/playerDetail.php?serverName=?php echo urlencode($_GET["serverName"]); ?playerName=?php echo urlencode($_GET["playerName"]); ?"/iframe

表单代码改为:

form action="22.php" method="get"

服务器: input type="text" name="serverName" /br /

玩家名: input type="text" name="playerName" /br /

input type="submit" /

/form

再试试?

如何正确运用PHP json_encode函数进行中文转换

在 php 中使用 json_encode() 内置函数(php 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式,但是转换后的中文会变成Unicode编码。

[php] view plaincopyprint?

?php

$arr = array

(

'Name'='希亚',

'Age'=20

);

$jsonencode = json_encode($arr);

echo $jsonencode;

?

程序运行结果如下:

[php] view plaincopyprint?

{"Name":null,"Age":20}

json_encode 函数中中文被编码成 null 了,Google 了一下,很简单,为了与前端紧密结合,Json 只支持 utf-8 编码,我认为是前端的 Javascript 也是 utf-8 的原因。

[php] view plaincopyprint?

?php

$array = array

(

'title'=iconv('gb2312','utf-8','这里是中文标题'),

'body'='abcd...'

);

echo json_encode($array);

?

这个程序的运行结果为:

[php] view plaincopyprint?

{"title":"\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898","body":"abcd..."}

数组中所有中文在json_encode之后都不见了或者出现\u2353等。解决方法是用urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。

[php] view plaincopyprint?

?php

/**************************************************************

*

* 使用特定function对数组中所有元素做处理

* @param string $array 要处理的字符串

* @param string $function 要执行的函数

* @return boolean $apply_to_keys_also 是否也应用到key上

* @access public

*

*************************************************************/

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);

?

这次成功了,运行结果如下:

[php] view plaincopyprint?

{"Name":"希亚","Age":"20"}