PHP中的UNICODE 编码与解码

本篇文章是对PHP中的UNICODE 编码与解码进行了详细的分析介绍,需要的朋友参考下
 

方法一:

复制代码 代码如下:

<?php
function unicode_encode($name)
{
$name = iconv('UTF-8', 'UCS-2', $name);
$len = strlen($name);
$str = '';
for ($i = 0; $i < $len - 1; $i = $i + 2)
{
$c = $name[$i];
$c2 = $name[$i + 1];
if (ord($c) > 0)
{ //两个字节的文字
$str .= 'u'.base_convert(ord($c), 10, 16).str_pad(base_convert(ord($c2), 10, 16), 2, 0, STR_PAD_LEFT);
}
else
{
$str .= $c2;
}
}
return $str;
}
//将UNICODE编码后的内容进行解码
function unicode_decode($name)
{
//转换编码,将Unicode编码转换成可以浏览的utf-8编码
$pattern = '/([w]+)|(u([w]{4}))/i';
preg_match_all($pattern, $name, $matches);
if (!empty($matches))
{
$name = '';
for ($j = 0; $j < count($matches[0]); $j++)
{
$str = $matches[0][$j];
if (strpos($str, 'u') === 0)
{
$code = base_convert(substr($str, 2, 2), 16, 10);
$code2 = base_convert(substr($str, 4), 16, 10);
$c = chr($code).chr($code2);
$c = iconv('UCS-2', 'UTF-8', $c);
$name .= $c;
}
else
{
$name .= $str;
}
}
}
return $name;
}

方法二:

复制代码 代码如下:

function unicode2utf8($str){
if(!$str) return $str;
$decode = json_decode($str);
if($decode) return $decode;
$str = '["' . $str . '"]';
$decode = json_decode($str);
if(count($decode) == 1){
return $decode[0];
}
return $str;
}

时间: 2024-12-30 23:33:41

PHP中的UNICODE 编码与解码的相关文章

浅析PHP中的UNICODE 编码与解码_php技巧

方法一: 复制代码 代码如下: <?phpfunction unicode_encode($name){    $name = iconv('UTF-8', 'UCS-2', $name);    $len = strlen($name);    $str = '';    for ($i = 0; $i < $len - 1; $i = $i + 2)    {        $c = $name[$i];        $c2 = $name[$i + 1];        if (ord

详解Python2.x中对Unicode编码的使用_python

我确定有很多关于Unicode和Python的说明,但为了方便自己的理解使用,我还是打算再写一些关于它们的东西.  字节流 vs Unicode对象 我们先来用Python定义一个字符串.当你使用string类型时,实际上会储存一个字节串.   [ a ][ b ][ c ] = "abc" [ 97 ][ 98 ][ 99 ] = "abc" 在这个例子里,abc这个字符串是一个字节串.97.,98,,99是ASCII码.Python 2.x版本的一个不足之处就是

浅谈php和js中json的编码和解码_php技巧

php中 1)编码 $jsonStr = json_encode($array) 2)解码 $arr = json_decode($jsonStr) <?php echo json_encode("中文", JSON_UNESCAPED_UNICODE);   添加参数:JSON_UNESCAPED_UNICODE即可. 测试环境: PHP Version 5.5.36 js中 1. 编码 var str = obj.toJSONString();//需要JSON解析器或工具类

php中把unicode编码转化为中文

这两天帮别人开发微信平台好友板块,存储用户爱好的内容都是unicode,取出来后需要转化成汉字 网上查了些方法,比较复杂,也不是特别好用,在这推荐一种方法: function unicode_decode($name){     $json = '{"str":"'.$name.'"}';   $arr = json_decode($json,true);   if(empty($arr)) return '';   return $arr['str']; } 把u

Node.js中使用Buffer编码、解码二进制数据详解_node.js

JavaScript很擅长处理字符串,但是因为它最初的设计是用来处理HTML文档,因此它并不太擅长处理二进制数据.JavaScript没有byte类型,没有结构化的类型(structured types),甚至没有字节数组,只有数字和字符串.(原文:JavaScript doesn't have a byte type - it just has numbers - or structured types, or http://skylitecellars.com/ even byte arra

js和C#中的编码和解码

原文:js和C#中的编码和解码 同一个字符串,用URL编码和HTML编码,结果是完全不同的. JS中的URL编码和解码 encodeURIComponent("text") //url编码 decodeURIComponent("text") //url解码 JS中的HTML编码和解码 escape("text") //html编码 unescape("text") //html解码   C#中的URL编码和解码   Http

汉字转换成Unicode编码PHP程序

汉字转换成unicode方法  代码如下 复制代码 <?php //将utf8编码的汉字转换为unicode function htou($c){  $n = (ord($c[0]) & 0x1f) << 12;  $n = (ord($c[1]) & 0x3f) << 6;  $n = ord($c[2]) & 0x3f;  return $n; } //在代码中隐藏utf8格式的字符串 function my_utf8_unicode($str)

java base64编码和解码

Java 中使用base64编码和解码:   第一种方式: 通过反射使用java 中不对外公开的类: Java代码   /***       * encode by Base64       */       public static String encodeBase64(byte[]input) throws Exception{           Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.

Java实现的URL编码和解码技术

当编写 " 网络爬虫" 或下载器时,在 Java 中实现 URL 编码和解码是一个很常见的要求.本文的重点是创建用于对所传递的 URL 进行编码和解码的模块. Main 方法 public static void main(String[] args) {                // TODO Auto-generated method stub                String url="https%3A%2F%2Fr1---sn-ci5gup-cags.