社区
基础编程
帖子详情
如何将gb2312转换为utf-8
bluenet21
2006-06-28 03:05:02
服务器不支持iconv,想找个替代方案。
谢谢!
...全文
1041
6
打赏
收藏
如何将gb2312转换为utf-8
服务器不支持iconv,想找个替代方案。 谢谢!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lostgdi731
2006-07-17
打赏
举报
回复
fun_gb2utf8.php:
<?
//不用iconv库的gb2312与utf-8的互换函数//对照表的使用
function get_charset(){
$filename = "fun_gb2utf8.txt";
$fp = fopen($filename,"r");
while(! feof($fp)) {
list($gb,$utf8) = fgetcsv($fp,10);
$charset[$gb] = $utf8;
}
fclose($fp);
return $charset;
}
//以上读取对照表到数组备用
/** gb2312到utf-8 **/
function gb2utf8($text, &$charset) {
//提取文本中的成分,汉字为一个元素,连续的非汉字为一个元素
preg_match_all("/(?:[\x80-\xff].)|[\x01-\x7f]+/",$text,$tmp);
$tmp = $tmp[0];
//分离出汉字
$ar = array_intersect($tmp, array_keys($charset));
//替换汉字编码
foreach($ar as $k=>$v) {
$tmp[$k] = $charset[$v];
}
//返回换码后的串
return join('',$tmp);
}
/** utf-8到gb2312 **/
function utf82gb($text, &$charset) {
$p = "/[\xf0-\xf7][\x80-\xbf]{3}|[\xe0-\xef][\x80-\xbf]{2}|[\xc2-\xdf][\x80-\xbf]|[\x01-\x7f]+/";
preg_match_all($p,$text,$r);
$utf8 = array_flip($charset);
foreach($r[0] as $k => $v) {
if(isset($utf8[$v])) {
$r[0][$k] = $utf8[$v];
}
}
return join('',$r[0]);
}
/*
//调用示例
$gb2utf_charset=get_charset();
$strhan = "测试汉字GB转换为UTF8,测试汉字UTF8转换为GB。";
echo " strhan(".strlen($strhan).")=".$strhan." <br/>\n";
$strhan_ut=gb2utf8($strhan, $gb2utf_charset);
echo " strhan(".strlen($strhan_ut).")=".$strhan_ut." <br/>\n";
$strhan_gb=utf82gb($strhan_ut_i, $gb2utf_charset);
echo " strhan(".strlen($strhan_gb).")=".$strhan_gb." <br/>\n";
*/
?>
这个文件: fun_gb2utf8.txt 好象网上没有,你要的加我Q我发给你。56079024
lantersen
2006-07-17
打赏
举报
回复
mb_convert_encoding
(PHP 4 >= 4.0.6, PHP 5)
mb_convert_encoding -- Convert character encoding
$str = mb_convert_encoding($str, "UTF-8","GB2312");
levopat
2006-07-04
打赏
举报
回复
<?php
$v = new convert;
echo 'test'.$v->UTF2gb('转换了');
class convert {
//gb2312和utf-8对应的编码文件
var $filename = "gb2312.txt";
var $codetable = array(); //码表读取后存入这个数组
//构造函数
function convert() {
$tmp = file($this->filename);
while( list($key,$value) = each($tmp) )
$this->codetable[hexdec(substr($value,0,6))] = substr($value,7,6);
}
//GB->UTF-8
function toUTF8($gb) {
//转换过程可参考上面列出的文章,这里就不贴了
return $utf8;
}
function UTF2gb($str) {
if( !trim($str) )
return $str;
$reverse = array();
while( list($key,$value) = each($this->codetable) )
$reverse[hexdec($value)] = $key;
$gb = "";
while($str) {
if ( ord(substr($str,0,1))>0xE0 )
{
$tmp = substr($str,0,3);
$str = substr($str,3,strlen($str));
$utf = hexdec(bin2hex($tmp));
$unicode = (($utf & 0x0F0000)>>4) | (($utf & 0x3F00)>>2)
| ($utf & 0x3F) ;
$gb = $gb . pack("n",($reverse[$unicode])|0x8080 );
}
else
{
$gb = $gb . substr($str,0,1);
$str = substr($str,1,strlen($str));
}
}
return $gb;
}
}
?>
黑夜路人(heiyeluren)
2006-07-04
打赏
举报
回复
php有很多扩展,比如iconv和mbstring就是做这个滴
嗯,当然也可以是使用php来实现,不过效率比较低,还是使用扩展比较好,速度快,而且还稳定,不过iconv0.9有bug,个人推荐使用mbstring就OK了
ImN1
2006-06-28
打赏
举报
回复
用javascript
不过反向utf8->gb2312就不行了
Gdj
2006-06-28
打赏
举报
回复
查表
GB2312
、GBK、
UTF-8
如何
转换
【什么是编码】 首先,我们要明白,
GB2312
、GBK和
UTF-8
都是一种字符编码。除此之外,还有好多字符编码。只是对于我们中国人的网站来说,用这三种编码比较多。 简单的说一下,为什么要用编码?在计算机内,储存文本信息用ASC II码,每一个字符对应着唯一的ASCII码。最初计算机是由美国发明的,他们也用的是键盘和上面的字母,所以他们的字符ASCII好解决。但是我们中国 的就不同了,每个汉字要...
字符集编码之间的
转换
,
UTF-8
转为
GB2312
,
GB2312
转为
UTF-8
,Unicode
转换
成
UTF-8
/* 李大叔2015-5-5修正 实现常见字符集编码直接的
转换
,主要的工作是在Unicode和
UTF-8
之间的
转换
,原理如下, 代码是引用网上一个人写的,但是里面有个内存错误的bug,修正后如下。 原理: 在0800-FFFF之间,所以要用3字节模板:1110xxxx 10xxxxxx 10xxxxxx。 某字unicode二进制是:0110 1100 0100 100
UTF-8
,Unicode,
GB2312
编码
转换
(C语言)
UTF-8
,Unicode,
GB2312
编码
转换
(C语言) 最近在做MQTT客户端的时候,遇到需要将输入的
GB2312
中文
转换
为UTF8的问题,这边做一个整理。
UTF-8
转
GB2312
/*! * \brief
Gb2312
至UTF8
转换
函数 * * \details
Gb2312
-> Unicode -> UTF8 * * \param const ch...
java实现
utf-8
与
GB2312
编码的
转换
字符编码问题往往是程序开发中较为纠结的问题,尤其是网络开发。本文采用java就常用的两种编码格式
utf-8
及
GB2312
间的
转换
进行了简要的说明,并给出具体的实例。
JavaScript文件编码
转换
指南:
GB2312
到
UTF-8
本文还有配套的精品资源,点击获取 简介:在多语言和跨平台数据交换中,字符编码至关重要。本文档主要关注从
GB2312
编码的JavaScript文件
转换
为更通用的
UTF-8
编码的过程。
GB2312
,作为首个中文编码标准,适用于简体中文,而
UTF-8
作为Unicode编码,能够表示世界上绝大多数语言的字符。
转换
的必要性在于
UTF-8
的广泛兼容性以及其在现代Web环境中的默认地位。...
基础编程
21,889
社区成员
140,329
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章