好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

汉字实体转换php php字符集转换

很多站长朋友们都不太清楚汉字实体转换php,今天小编就来给大家整理汉字实体转换php,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP用str_replace()能替换中文汉字吗? 2、 如何正确运用PHP json_encode函数进行中文转换 3、 php搜索 繁体怎么转成简体 4、 汉字怎样转换十六进制php 5、 php 汉字 转换字符?如:我的提问 转换后是:\u6211\u7684\u63d0\u95ee 是通过那个函数转换的呀 PHP用str_replace()能替换中文汉字吗?

PHP能用str_replace()能替换中文汉字,替换方法为:

1、PHP进行字符串替换的两个常用方法。

2、编写PHP脚本,定义基本的字符串,查找对象,和替换对象。

3、使用str_replace()进行替换并打印。

4、保存并查看str_replace()的打印结果。

5、使用strtr()进行替换并打印。

6、保存并查看strtr()的打印结果。

如何正确运用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"}

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;$i<strlen($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;$i<strlen($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>","<head><base 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 => $val<br>";

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

}

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

$code=new CCharset;

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

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

echo $fcontents;

exit;

}

/

汉字怎样转换十六进制php

//汉字进制转换

//$string 传入的汉字或其它字符

//$tobase 要转换的进制 范围 2~36 之间任意取值

//$back 返回形式,0 转换成进制代码 ; 1 将进制转换成汉字

function ASCII($String,$tobase,$back){

if( $tobase > 1 $tobase < 37 ){

if($back == 0){

return preg_replace('/(.)/es',"str_pad(base_convert(ord('\\1'),10,$tobase),8,'0',STR_PAD_LEFT)",$String);

}else{

return preg_replace('/(\w{8})/e',"chr(base_convert('\\1',$tobase,10))",$String);

}

}else{

return false;

}

}

//范例

$str = '我爱你';

$en = ASCII($str,2,0); // 转换成2进制: 111001101000100010010001111001111000100010110001111001001011110110100000

echo ASCII($en,2,1); // 转换成汉字:我爱你

$en = ASCII($str,8,0); // 转换成8进制: 000003460000021000000221000003470000021000000261000003440000027500000240

echo ASCII($en,8,1); // 转换成汉字:我爱你

$en = ASCII($str,10,0); // 转换成10进制: 000002300000013600000145000002310000013600000177000002280000018900000160

echo ASCII($en,10,1); // 转换成汉字:我爱你

$en = ASCII($str,10,0); // 转换成10进制: 000002300000013600000145000002310000013600000177000002280000018900000160

echo ASCII($en,10,1); // 转换成汉字:我爱你

$en = ASCII($str,16,0); // 转换成10进制: 000000e60000008800000091000000e700000088000000b1000000e4000000bd000000a0

echo ASCII($en,16,1); // 转换成汉字:我爱你

php 汉字 转换字符?如:我的提问 转换后是:\u6211\u7684\u63d0\u95ee 是通过那个函数转换的呀

json_encode可以,但会加上引号,

有个bin2hex,但是不会给你加上\u

如果你非要\u的话,可以试试以下代码

$hexcode = bin2hex('中国');

$result = '\u'.substr(chunk_split($hexcode, 4, '\u'), 0,-2);

echo $result;

关于汉字实体转换php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于汉字实体转换php php字符集转换的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did196247
更新时间:2023-04-26   阅读:26次

上一篇: 阿里ecs如何搭建php 阿里云ecs搭建网站

下一篇:php关闭网站吗 php怎么关闭

最新资料更新

  • 1.php获取js变量 php获取js变量值
  • 2.php数据库名字大小写 php函数名称区分大小写吗
  • 3.php短信被刷 php防止短信被刷
  • 4.php订单管理功能 php订单提醒功能
  • 5.php二维码读取 php做二维码会用到的技术
  • 6.php视频太大怎么传输 php上传视频压缩
  • 7.php圆形头像代码 php生成圆形图
  • 8.php网站下载图片 网站的php文件下载
  • 9.php仿站技术 用仿站小工具制作网站
  • 10.php怎么登录会员 怎么用php完成登录页面
  • 11.php网站+iis php网站有哪些
  • 12.php会做流控吗 php流程控制
  • 13.php在线运行测试 php 测试工具
  • 14.整站系统php源码 php企业网站整站源码
  • 15.海康sdk只有php 海康sdk python
  • 16.ubuntuphp启动 ubuntu开机启动python
  • 17.怎么开发一个php项目 php项目开发流程
  • 18.php+rpush的简单介绍
  • 19.数组对象转为数组php 对象数组转string
  • 20.php提示重复提交 php api防止重复提交

CopyRight:2016-{hedonghua:year}{hedonghua:sitegs} 备案ICP:湘ICP备09009000号-16 {hedonghua:sitejym}
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]