主题:将UTF-8编码的字符串转化成GB2312的编码,没有对应编码的字符串转化为DEC; 的格式。如 회=>회
语言:PHP,Javascript
内容:浏览器用Javascript中encodeURI函数将字符串(包含非GB2312中字符)编码,GET请求到服务器,页面编码均为GB2312,服务器PHP脚本将请求数据转换成GB2312表示。
基础:
1. 单独使用iconv函数只能转换GB2312字符,外文字符无法转换
2. 没有现成的函数可以用
3. bindec()函数:将二进制格式的"01"字符串转换为十进制数
4. decbin()函数:将十进制数转换为二进制字符串,如decbin(224)="11100000"
思路:因为UTF-8分别有1,2,3字节编码,中日韩文都是3字节编码,处理时根据字符编码中首字节大小区分字节数量。
1.如首字节小于128,为ASCII码
2.128~192,非UTF-8编码,且处理为ord();
3. 192~224, 双字节UTF-8编码
4. 224~240,三字节编码
5. 240~248,四字节编码
6. 。。。
7. 对于三字节编码的尝试用iconv转换成GB2312
8. 非GB2312的多字节字符,尝试把UTF-8转换成Unicode,再取到Unicode十进制值
9. 可以考虑使用位运算,也可以用bindec()函数
程序:
function GetGB2312String($name)
{
$tostr = "";
for($i=0;$i
$curbin = ord(substr($name,$i,1));
if($curbin {
$tostr .= substr($name,$i,1);
}elseif($curbin $str = substr($name,$i,1);
$tostr .= "".ord($str).";";
}elseif($curbin $str = substr($name,$i,2);
$tostr .= "".GetUnicodeChar($str).";";
$i += 1;
}elseif($curbin $str = substr($name,$i,3);
$gstr= iconv("UTF-8","GB2312",$str);
if(!$gstr)
{
$tostr .= "".GetUnicodeChar($str).";";
}else{
$tostr .= $gstr;
}
$i += 2;
}elseif($curbin $str = substr($name,$i,4);
$tostr .= "".GetUnicodeChar($str).";";
$i += 3;
}elseif($curbin $str = substr($name,$i,5);
$tostr .= "".GetUnicodeChar($str).";";
$i += 4;
}else{
$str = substr($name,$i,6);
$tostr .= "".GetUnicodeChar($str).";";
$i += 5;
}
}
return $tostr;
}
function GetUnicodeChar($str)
{
$temp = "";
for($i=0;$i
$x = decbin(ord(substr($str,$i,1)));
if($i == 0)
{
$s = strlen($str)+1;
$temp .= substr($x,$s,8-$s);
}else{
$temp .= substr($x,2,6);
}
}
return bindec($temp);
}
附:
U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Atom編輯器mac版下載
最受歡迎的的開源編輯器