gb2312 utf-8 相互转换
2005-01-10 18:35
330 查看
$filename = http://smsrc.sina.com.cn/newsinarc/include/gb2utf8.txt
<?php
//对照表的使用
$filename = "gb2utf8.txt";
$fp = fopen($filename,"r");
while(! feof($fp)) {
list($gb,$utf8) = fgetcsv($fp,10);
$charset[$gb] = $utf8;
}
fclose($fp);
//以上读取对照表到数组备用
/** 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]);
}
//测试
$s = gb2utf8('这是对照表的测试', $charset);
echo utf82gb($s, $charset);
?>
<?php
//对照表的使用
$filename = "gb2utf8.txt";
$fp = fopen($filename,"r");
while(! feof($fp)) {
list($gb,$utf8) = fgetcsv($fp,10);
$charset[$gb] = $utf8;
}
fclose($fp);
//以上读取对照表到数组备用
/** 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]);
}
//测试
$s = gb2utf8('这是对照表的测试', $charset);
echo utf82gb($s, $charset);
?>
相关文章推荐
- UTF-8,UNICODE,ANSII,GBK,GB2312相互转换
- Python的ASCII, GB2312, Unicode , UTF-8 相互转换
- GB2312、UTF_8、UNICODE之间相互转换
- boost 实现 GB2312 到 UTF-8 的相互转换
- Python的ASCII, GB2312, Unicode , UTF-8 相互转换
- utf-8和gb2312的相互转换
- UTF-8,UNICODE,Gb2312他们3个之间的相互转换
- Python的ASCII, GB2312, Unicode , UTF-8 相互转换
- UTF-8,UNICODE,Gb2312他们3个之间的相互转换.
- GB2312编码与UTF-8编码的相互转换代码(linux windows下通用)
- Python的ASCII, GB2312, Unicode , UTF-8 相互转换
- VC UTF-8与中文(GB2312)相互转换
- js gb2312和utf-8相互转换
- UTF-8与GB2312相互转换
- VC UTF-8与中文(GB2312)相互转换
- Python的ASCII, GB2312, Unicode , UTF-8 相互转换
- unicode utf-8 gb2312编码 使用C++相互转换的代码
- UTF-8与GB2312间相互转换
- GB2312和UTF-8的相互转换
- UTF-8、GB2312、Unicode相互转换