参考文章
http://tech.163.com/05/0516/10/1JS9KEGA00091589.html
UTF编码
UTF-8就是以8位为单元对UCS进行编码。从UCS-2到UTF-8的编码方式如下:
UCS-2编码(16进制)
UTF-8 字节流(二进制)
0000 - 007F
0xxxxxxx
0080 - 07FF
110xxxxx 10xxxxxx
0800 - FFFF
1110xxxx 10xxxxxx 10xxxxxx
例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110
xxxx 10
xxxxxx 10
xxxxxx。将6C49写成二进制是:0110 110001 001001, 用这个比特流依次代替模板中的x,得到:1110
0110 10
110001 10
001001,即E6 B1 89。
终于将unicode和utf8互转搞定。
如果utf-8编码的字符ch是3个字节。xx yy zz
将xx和1F AND 操作得到 a
将yy和7F AND 操作得到 b
将zz和7F AND 操作得到 c
(64a+b)*64+c = ch(unicode编码)
echo.php没什么。就是几个函数。
");
//写入unicode文件
$ucs2data = utf8ToUnicode($data,"little");
$endian = chr(0xFE).chr(0xFF);
$endian = chr(0xFF).chr(0xFE);
$rt = file_put_contents ( "ucs2.txt", $endian.$ucs2data);
//19:32,utf8toUnicode函数ok.
//20:09。发现little endian 和big endian问题。并解决。
//big endian 方式存入的unicode字符串,ue和editplus均不能
//识别。只有notepad正常识别。
$rt = file_put_contents ( "usc2ys_data.txt", $ucs2_ysdata);
//写入utf8文件
$utf8data = unicodeToUtf8($ucs2data); // 20:52. 将字串转回utf8码ok.
$rt = file_put_contents ( "utf8.txt", $utf8data);
echo(urlencode($utf8data));echo("");
$esc = utf8Escape($data);
echot($esc);
$esc = phpEscape($data);
echot($esc);
$unesc = phpUnescape($esc);
echot($unesc);
/**
* 此函数将utf8编码字串转为unicode编码字符串
* 参数 str ,utf8编码的字符串。
* 参数 order,存放数据格式,是big endian还是little endian,默认的unicode存放次序是little.
* 如:"大"的unicode码是 5927。little方式存放即为:27 59 。big方式则顺序不变:59 27.
* little 存放格式文件的开头均需有FF FE。big 存放方式的文件开头为 FE FF。否则。将会产生严重混乱。
* 本函数只转换字符,不负责增加头部。
* iconv转换过来的字符串是 big endian存放的。
* 返回 ucs2string , 转换过的字符串。
* 感谢唠叨(xuzuning)
*/
function utf8ToUnicode($str,$order="little")
{
$ucs2string ="";
$n=strlen($str);
for ($i=0;$i0x80) { //110xxxxx 10xxxxxx
$a = (ord($str[$i]) & 0x3F )0x80 && ord($str[$i+2])>0x80) { //1110xxxx 10xxxxxx 10xxxxxx
$a = (ord($str[$i]) & 0x1F)转为utf8编码字符串
* 参数 str ,unicode编码的字符串。
* 参数 order ,unicode字串的存放次序,为big endian还是little endian.
* 返回 utf8string , 转换过的字符串。
*
*/
function unicodeToUtf8($str,$order="little")
{
$utf8string ="";
$n=strlen($str);
for ($i=0;$i转回来。
$i++; //两个字节表示一个unicode字符。
$c = "";
if($val utf8string .= $c;
}
return $utf8string;
} // end func
/*
* 将utf8编码的字符串编码为unicode 码型,等同escape
* 之所以只接受utf8码,因为只有utf8码和unicode之间有公式转换,其他的编码都得查码表来转换。
* 不知道查找utf8码的正则是否完全正确。迷茫ing
* 虽然调用utf2ucs对每个字符进行码值计算。效率过低。然而,代码清晰,要是把那个计算过程嵌入。
* 代码就不太容易阅读了。
*/
function utf8Escape($str) {
preg_match_all("/[\xC0-\xE0].|[\xE0-\xF0]..|[\x01-\x7f]+/",$str,$r);
//prt($r);
$ar = $r[0];
foreach($ar as $k=>$v) {
$ord = ord($v[0]);
if( $ordutf8码
$ar[$k] = "%u".utf2ucs($v);
}
elseif ($ordutf8码
$ar[$k] = "%u".utf2ucs($v);
}
}//foreach
return join("",$ar);
}
/**
*
* 把utf8编码字符转为ucs-2编码
* 参数 utf8编码的字符。
* 返回 该字符的unicode码值。知道了码值,你就能使用chr将字符弄出来了。
*
* 原理:unicode转为utf-8码的算法是。头部固定位或。
该过程的逆向算法就是这个函数了,头部固定位反位和。
*/
function utf2ucs($str){
$n=strlen($str);
if ($n=3) {
$highCode = ord($str[0]);
$midCode = ord($str[1]);
$lowCode = ord($str[2]);
$a = 0x1F & $highCode;
$b = 0x7F & $midCode;
$c = 0x7F & $lowCode;
$ucsCode = (64*$a + $b)*64 + $c;
}
elseif ($n==2) {
$highCode = ord($str[0]);
$lowCode = ord($str[1]);
$a = 0x3F & $highCode; //0x3F是0xC0的补数
$b = 0x7F & $lowCode; //0x7F是0x80的补数
$ucsCode = 64*$a + $b;
}
elseif($n==1) {
$ucscode = ord($str);
}
return dechex($ucsCode);
}
/*
* 用处 :此函数用来逆转javascript的escape函数编码后的字符。
* 关键的正则查找我不知道有没有问题.
* 参数:javascript编码过的字符串。
* 如:unicodeToUtf8("%u5927")= 大
* 2005-12-10
*
*/
function phpUnescape($escstr){
preg_match_all("/%u[0-9A-Za-z]{4}|%.{2}|[0-9a-zA-Z.+-_]+/",$escstr,$matches); //prt($matches);
$ar = &$matches[0];
$c = "";
foreach($ar as $val){
if (substr($val,0,1)!="%") { //如果是字母数字+-_.的ascii码
$c .=$val;
}
elseif (substr($val,1,1)!="u") { //如果是非字母数字+-_.的ascii码
$x = hexdec(substr($val,1,2));
$c .=chr($x);
}
else { //如果是大于0xFF的码
$val = intval(substr($val,2),16);
if($val %u".bin2hex( iconv( ’gbk’ ,"UCS-2",$chars[$i].$chars[$i+1] ) );
$i++;
}
}//foreach
return $ar;
}
?>
相关推荐
当我们谈论Unidbg时我们在谈什么
文章目录一、前言二、使用Unidbg的工作量是什么三、补环境补的是什么3.1 运行环境缺失3.2 上下文缺失四、Unidbg 不是所有情况下最优的解决方案五、Unidbg在大多数情况下是好的方案六、Unidbg和风控无关七、尾声 一、前言 这是一篇漫谈Unidbg的文章,我对Unidbg的使用和理解都还很浅,日后会更新或修改看法,欢迎大佬指点,也期待同侪讨论。 二、使用Unidbg的工作量是什么 我们常规使用Frida + IDA的动静态分析中,工作可能是这样的 找线索→Frida Hook验证→验证成功继
同时存在unicode-escape和utf-8的解码方法
在爬取lc提交代码的时候遇到的一个问题,在爬取到的源码中,符号是采用unicode-escape编码的,而其中的中文是采用utf-8编码的,正常解码无论怎样都会出现乱码,本文记录下解决办法。 文章目录示例解决办法 示例 下面是lc第一题爬取的源码,编码为"utf-8",中文可以正确显示,但是换行符等符号并不能正确显示,因此需要转换。 code = "class Solution:\u000A def twoSum(self, nums: List[int], target: int) \u002D
PYNQ开发板使用-使用DMA进行数据搬移(Simple DMA transfer 模式)
该篇是学习使用PYNQ开发板,实际上是对ZYNQ PL端AXI_CDMA 核的应用。实验步骤参照官网的教程,一步一步地做,但是由于在硬件资源布置方面与官方教程稍有出入,所以在SDK的源码里也进行了修改。 AXI_CDMA特性: 如果是使用ZYNQ 7系列芯片(可能其他Xilinx也是通用的),xilinx的AXI_CDMA 核有两种传输模式:轮询(poll)和中断(...
JS计算UTF8字符串占用字节数(escape版与UTF8专用版)
使用escape是为了使所有编码都转换成统一的编码格式(Unicode), 如GBK编码的"中国", 与UTF8编码的"中国",它们的escape返回值都是一样的,所以代码具有通用性,且escape在JS1.0已经有了,各浏览器都通用如果不考虑通用性,且html为UTF8编码的,可以用UTF8版本escape版:function utf8_strlen(str){ v
【渗透工具】内网多级代理工具Venom详细使用教程
Venom是一款为渗透测试人员设计的使用Go开发的多级代理工具。Venom可将多个节点进行连接,然后以节点为跳板,构建多级代理。渗透测试人员可以使用Venom轻松地将网络流量代理到多层内网,并轻松地管理代理节点。
RTOS任务调度原理:高优先级任务为何在低优先级任务执行时无法响应
实时操作系统(RTOS)的核心在于其确定性的任务调度机制,它通过优先级抢占确保关键任务及时执行。其基本原理是调度器仅在特定调度点(如任务主动阻塞、中断退出时)运行,比较就绪态任务的优先级并切换上下文。这一机制的技术价值在于为嵌入式系统提供可预测的响应时间,广泛应用于工业控制、汽车电子和物联网设备等对实时性要求高的场景。当低优先级任务执行**长时间非阻塞运算**且无中断发生时,调度器无法被触发,导致高优先级任务虽处于就绪态却无法获得CPU,造成系统响应延迟。理解**任务状态机**与调度点,是优化实时性、避免此
python爬虫中unescape 将JS中escape后的字符串解码
#编码 escape_str = ‘北京’ str = escape_str.encode(‘unicode_escape’).decode(‘utf-8’) str1 = str.replace(’\u’,’%u’)# 得到结果 str1 = ‘%u5317%u4eac’ print(str1) #同理解码 import urllib.parse escape_str = ‘%u4eba%u75...
E2000 RGMII0通讯异常问题总结
飞腾E2000 RGMII接YT8521,RGMII0路不通问题。
记一次 unicode-escape 和 utf-8 编码的互解
记一次 unicode-escape 和 utf-8 编码的转换 是这样的,我在做 CTF 题的 RC4 编码时遇到一个 base64 加密后输出的密文: mg6CITV6GEaFDTYnObFmENOAVjKcQmGncF90WhqvCFyhhsyqq1s= . . 直接 base64 解密后发现输出的是: b"\x9a\x0e\x82!5z\x18F\x85\r6’9\xb1f\x10\xd3\x80V2\x9cBa\xa7p_tZ\x1a\xaf\x08\\xa1\x86\xcc\xaa\xab
差分音频转单端音频单电源方案
其中,芯片设计中的轨到轨输出(Rail-to-Rail Output) 是指通过特定的电路设计,使芯片(如运算放大器、驱动电路等)的输出电压能够达到或接近电源电压的上下极限(即“电源轨”),从而最大化信号的动态范围。最终,Vout=R2/R1*(Vin2−Vin1),即输出电压为输入电压差(Vin2−Vin1)乘以电阻比R2/R1。2、电阻:R1、R2、R3、R4是电路中的电阻,其中R1 = R3,R2 = R4。因R1=R3,R2=R4,且Vn=Vp,设R1=R3=R,R2=R4=kR。
【Qwen2微调实战】LLaMA-Factory框架对Qwen2-7B模型的微调实践
在人工智能的浪潮中,大型语言模型(LLMs)正逐渐成为研究和应用的热点。它们在自然语言处理(NLP)的各个领域,如文本生成、翻译、问答等任务中展现出了卓越的能力。Qwen2-7B模型,作为该领域的佼佼者,不仅因其庞大的参数量和强大的表示能力受到关注,更因其在微调后能够更好地适应特定任务而备受关注。本文将详细介绍如何利用LLaMA-Factory这一高效的微调框架对Qwen2-7B进行微调,以期达到提升模型在特定任务上的表现。
深入解析JavaScript中的unescape函数
unescape函数是JavaScript中的一个全局函数,用于将被转义的字符串还原成原始字符串。它是escape函数的逆操作。在JavaScript中,为了方便在HTTP请求中传递参数,有时需要将特殊字符进行转义,比如用%20表示空格,用%26表示&号。此时,可以使用escape函数将字符串进行转义。而unescape函数则是将被转义后的字符串还原成原始字符串。
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
php+x+转中文+代码,php的汉字转换: Unicode(UTF8)->GB_php
秋水无恨 GBK Unicode UTF8 汉字 转换php的汉字转换一直是比较麻烦的事该类内置了四个过滤"[dec];","[hex];","%u[hex]","utf8转换"方便用户的使用,同时也可自定义过滤进行自己喜欢的操作qswhU.php 从这里下载http://www.blueidea.com/user/qswh/qswhU.zipclass qswhU{var $qswhData;f...
华为的C语言编程规范.pdf
华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
php 汉字转换utf8,php的汉字转换:Unicode(UTF8)至GBK
php的汉字转换一直是比较麻烦的事该类内置了四个过滤"[dec];","[hex];","%u[hex]","utf8转换"方便用户的使用,同时也可自定义过滤进行自己喜欢的操作qswhU.php 从这里下载http://www.blueidea.com/user/qswh/qswhU.zipclass qswhU{var $qswhData;function qswhU($filename="qs...
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
PHP UNICODE 编码转换(JS的encodeURIComponent函数 和 PHP的自定义unescape函数)
1 002 /** 003 * 将字符串转换成unicode编码 004 * 005 * @param string $input 006
php解escape,PHP下escape解码函数的实现方法
GB2312编码:function unescape($str) {$str = rawurldecode($str);preg_match_all("/%u.{4}|.{4};|d+;|.+/U",$str,$r);$ar = $r[0];foreach($ar as $k=>$v) {if(substr($v,0,2) == "%u")$ar[$k] = iconv("UCS-2","G...
PHP实现gb2312、UTF-8等字符和unicode间的编码转换及PHP版unescape
编写 PHP 代码的过程中,经常会遇到需要对中文转码的问题,如 GB2312 Unicode、GB2312 Big5 等等。如果 PHP 编译时带有 mbstring 的话,可以使用 Multi-Byte String Function 实现部分转码工作。然而由于很多虚拟主机不支持 mbstring,或者 mbstring 的编译、配置过于麻烦,很多 PHP 代码无法使用这一序列的函数。 最近为了解决这个问题,让我心烦不已,通过搜集资料和整理,终于实现了GB2312 Big5 Unicode(UT
%e5 转换汉字 php,php的汉字转换:Unicode(UTF8)至GBK
php的汉字转换一直是比较麻烦的事该类内置了四个过滤”[dec];”,”[hex];”,”%u[hex]”,”utf8转换”方便用户的使用,同时也可自定义过滤进行自己喜欢的操作class qswhU{var $qswhData;function qswhU($filename=”qswhU.php”){$this->qswhData=file($filename);}function dec...
php汉字转utf,php的汉字转换: Unicode(UTF8)->GBK
qswhU.php 从这里下载http://www.blueidea.com/user/qswh/qswhU.zipclass qswhU{var $qswhData;function qswhU($filename="qswhU.php"){$this->qswhData=file($filename);}function decode($str,$pattern=0){$arr=arra...
php常用方法是什么意思,php一些常用方法
php一些常用方法//将网址的参数转为变量,如:xxx.php?a=1&b=2,//运行方法后,echo $a."|".$b, 结果:1|2extract($_GET);//unicode转utf8,如:中或 \u9865 转 成 中文function unescape($str) {$str = rawurldecode($str);preg_match_all("/(?:%u.{4}...
用PHP将Unicode 转化为UTF-8
function unescape($str) { $str = rawurldecode($str); preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r); $ar = $r[0]; //print_r($ar); foreach($ar as $k=>...
php开发团队如何分工,给php开发团队的建议
同一个项目的所有文件是否可以统一使用的文本编码? 建议使用utf8。 我在不同部门看到过不少项目的文件编码不统一,有的文件编码格式是utf8的,有的是gbk的,甚至同一个php文件不同段落的编码也是不统一的。这造成我用编辑器打开不同文件,很多都要重新设定加载编码,否则看到的注释都是乱码,甚至在看同一文件的不同部分,也得切换编码。是否可以统一文件格式?建议使用linux文件。至少现在从icode里看...
做php适配信创的过程中会遇到的所有问题。很细很细
unescape解密 php,[PHP]php中escape函数加密与JS中unescape解密
在json中不支持中文,用它传送中文数据就会出现数据丢失或者乱码,必须在传送前对要发送的字符串进行编码,由于传送过去需要用js进行数据解析,考虑 到js中有unescape函数,故若在php中有个escape函数,对数据进行编码,在客户端用unescape进行 解码,这样就会方便很多。先在网上搜索一把,很多用php实现的escape函数,大同小异functionphpescape($str){p...
js unescape 对应php的函数,php实现Javascript的escape和unescape函数
由于需要用到php调用js文件,在网上找了相关的资料,并改写了相关的方法。php实现Javascript的escape函数方法:function escape($str) {preg_match_all("/[/xc2-/xdf][/x80-/xbf]+|[/xe0-/xef][/x80-/xbf]{2}|[/xf0-/xff][/x80-/xbf]{3}|[/x01-/x7f]+/e",$st...
php中跟unescape相同功能d,PHP实现Javascript中的escape及unescape函数代码分享_php实例...
这个类相当好用.作用么,PHP做JSON传递GBK字符,比如中文,日文,韩文神马的Unicode最合适不过了..1){// 多字节字符$return.='%u'.strtoupper(bin2hex(mb_convert_encoding($str,'UCS-2',$encoding)));}else{$return.='%'.strtoupper(bin2hex($str));}}return$...
5788



被折叠的 条评论
为什么被折叠?



