热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux中文转unicode,linux下php中文UTF8转换Unicode方法和注意事项

先贴代码:*Unicode编码*functionunicode_encode($name){$nameiconv(UTF-8,UCS-2,$name);windows

先贴代码:/*Unicode 编码*/

function unicode_encode($name){

//$name = iconv('UTF-8', 'UCS-2', $name); //windows

$name = iconv('UTF-8', 'UCS-2BE', $name); //linux

$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 .= &#39;\u&#39;.base_convert(ord($c), 10, 16).str_pad(base_convert(ord($c2), 10, 16), 2, 0, STR_PAD_LEFT);

}else{

$str .= $c2;

}

}

return $str;

}

没有注释过的代码在Windows环境下是编码正常的,但在Linux下转换出来的两个字符是相反的,用在线unicode转换工具出来的结果是乱码。

那么解决方法也很简单 直接用我上面Linux的代码就可以了

UCS-2的编码规则:

windows下默认是UCS-2LE。

linux下默认是UCS-2BE。用iconv(指定UCS-2)来转换生成的是UCS-2BE的unicode,但可能php环境配置会导致不是UCS-2BE。

windows和linux等多个平台对 UCS-2 的理解不同(UCS-2LE,UCS-2BE),所以为了统一需要直接指定为UCS-2BE。

即把:$name = iconv(&#39;UTF-8&#39;, &#39;UCS-2&#39;, $name); //windows

改为:$name = iconv(&#39;UTF-8&#39;, &#39;UCS-2BE&#39;, $name); //linux

亲测转换出来的unicode可以正常编码。

附件下载



推荐阅读
  • Linux文件目录和权限
    Linux文件目录和权限前言:Linux一般将文件可存取的身份分为三个类别,分别是ownergroupothers,根据权限划分,每个目录都可以拥有相对身份的-rwx[可读可写可执 ... [详细]
  • python多进程的理解 multiprocessing Process join run
    最近看了下多进程。一种接近底层的实现方法是使用?os.fork()方法,fork出子进程。但是这样做事有局限性的。比如windows的os模块里面没有fork()方法。window ... [详细]
  • 六十五、主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现...
    六十五、主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现一、主动模式和被动模式主动或者被动是相对客户端来讲的被动模式,服务端会主动连接客户 ... [详细]
  • Linux是一套免费使用和***传播的类UNIX操作系统,主要用于基于Intel x86系列CPU的计算机上。Linux系统是由全世界各地的成千上万的程序员合适的方式定制自己的Li ... [详细]
  • 安全3AAuthentication:认证Authorzation:授权Accouting|Audition:审计用户管理用户:UID:0,不一定是root,root的uid非0时 ... [详细]
  • 1.数据准备#测试数组vectorc(5,34,65,36,67,3,6,43,69,59,25,785,10,11,14)vector##[1]53465366736436959 ... [详细]
  • 利用ipv6技术,废旧笔记本变成server
    如果你家的路由器已经get到了ipv6地址,并且你家的电脑也获取了有效的ipv6地址,在广域网的设备可以访问到。那恭喜你,再配合我这个dd ... [详细]
  • windows安装phpstorm百度phpstorm,进入官网:https:www.jetbrains.comphpstorm下载phpstormwindows。如 ... [详细]
  • 根据时间更改网站背景的脚本。热!
    我在网上找到了它,并以自己的方式对其进行了自定义;作者的功劳就在那里。实际上,这是一个用于更改背景颜色的脚本,并且在我看来& ... [详细]
  • PythonDay3
    #Author:ZhaoBin#实现对Haproxy配置文件的增删改查deffetch(backend):result[]withopen('ha.conf',&# ... [详细]
  • 示例代码:12345678910111213141ProcessEngineprocessEngineConfiguration.getProcessEngine();2Tas ... [详细]
  • 闲话少说,直接切入主题,之前也是用一下其他的IDE,但是总是在vi和IDE之间来回切换,比较麻烦,于是乎,找了几个插件亲身体验,功能挺不错;1、安装vi7.0vim的官方网站是:www.vmuni ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 微信小程序官方组件展示之表单组件input源码
    以下将展示微信小程序之表单组件input源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。功能描述:输入框。该组件是原生组件, ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
author-avatar
红昊子楽楽七_358
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有