社区
基础编程
帖子详情
PHP中UTF-8 GB2312转换
genghaolove
2006-06-13 04:00:57
在网上看的为什么都不能啊?请高人指点一下不用iconv()函数用那个什么表的最好还能有GB2312表,谢谢拉.
偶是刚学PHP 的 很多地方不明白,请指点,在线等 救!下班前最好
...全文
1999
10
打赏
收藏
PHP中UTF-8 GB2312转换
在网上看的为什么都不能啊?请高人指点一下不用iconv()函数用那个什么表的最好还能有GB2312表,谢谢拉. 偶是刚学PHP 的 很多地方不明白,请指点,在线等 救!下班前最好
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
genghaolove
2006-06-14
打赏
举报
回复
zeroleonhart(没有螺母的螺丝钉) 说了 不用这个函数了 大哥
genghaolove
2006-06-14
打赏
举报
回复
xuzuning(唠叨) GB2312 文件已经生成了.就是在一个记事本 中点 文件->另存为 的时候 弹出的对话框的文件的 编码方式是 UTF-8的
genghaolove
2006-06-14
打赏
举报
回复
那我要传回一个文本文件 该怎么办啊 ? 得一行行读?!
还有就是 怎么样才真正改变他的编码方式呢?
zeroleonhart
2006-06-14
打赏
举报
回复
iconv()
xuzuning
2006-06-14
打赏
举报
回复
1、你的字典 $charset 不对!
错误Can only flip STRING and INTEGER values
的意思是array_flip() 只能翻转字符串和数字
而在你的字典中存在了数组,而数组是不能做关联键的
2、你说“gb2312.txt 是我在网上找的一个gb-unicode.txt 代替.”的,这是不行的
这个gb2312.txt的内容是这样的
gbk汉字,utf8汉字
每行都是这样
3、这个文件是可以自己构造的,你在可以使用iconv函数的机器上执行如下代码就可以了
<?php
$fp = fopen('gb2312.txt', 'w');
for($i=0x81; $i<0xff; $i++) {
$l = chr($i);
for($j=0x40; $j<0xff; $j++) {
$h = chr($j);
$s = iconv('gbk', 'utf-8', $l.$h);
if(! empty($s)) {
fwrite($fp, "$l$h,$s\n");
}
}
}
fclose($fp);
?>
tianyaxiao
2006-06-14
打赏
举报
回复
MARK
genghaolove
2006-06-14
打赏
举报
回复
说过了 不用iconv()函数 因为可能服务器上不支持 , 只是要在存储的时候转换就OK 了 还没有高人来回答啊? 我看了个例子,应该可以搞定.
可是不是很明白希望有高人帮忙啊!
贴出来拉
<?PHP
//对照表的使用
$filename = "gb2312.txt";
$fp = fopen($filename,"r");
while(! feof($fp)) {
list($gb,$utf8) = fgetcsv($fp,10);
$charset[$gb] = $utf8;
}
//以上读取对照表到数组备用
/** 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);
?>
1.关于这个例子的问题:出错提示:
Warning: array_flip() [function.array-flip]: Can only flip STRING and INTEGER values! in C:\Apache\www\q.php on line 30
2.$filename = "gb2312.txt"; gb2312.txt";我在网上找的一个gb-unicode.txt 代替.
第30 行 :$utf8 = array_flip($charset); 难道这个FLIP()函数用的不对吗? 我不明白,谢谢
genghaolove
2006-06-13
打赏
举报
回复
我的是PHP5的 我靠
怎么还没有解答啊 我快疯了,
今天一天了还没有解决,哪怕是个小例子让我看看效果啊 .,.我们头也没有具体告诉我是什么样的形式我也没见过,希望有人来解答快点,快下班了
颓废的老猫
2006-06-13
打赏
举报
回复
iconv("GB2312","UTF-8",$str)
跟php版本有关,php5以上就默认加载php_iconv.dll了
cdm11cn
2006-06-13
打赏
举报
回复
iconv("GB2312","UTF-8",$str)
php.ini
;php_iconv.dll去掉分号
文本文件编码
转换
工具 gbk utf8
gb2312
写此贴为记录自己的学习历程,供后来者以观. 原因,我决定学习
PHP
+MYSQL之后选择了用整合包的环境(因为我懒) 经过历时一个星期的比较 揣摩 测试之后选择了 VertrigoServ 可是它美
中
不足的是mysql里
中
文显示"????????".最后几经周折总算解决了. 方法如下: 1)在
php
myadmin
中
建库的时候一切默认 2)建表时候一切默认;至于导入*.SQL没试应该是不用动什么 3)在
php
文件头部加入 "说明此文件编码为utf8" 4)在 mysql_select_db("表名",$id); 后面加入一行 mysql_query("set names utf8;"); 5)*.
php
文件在存盘的时候也以 "
utf-8
"编码存盘. 如此一来整站编码就都是国际能用的utf8编码了.通用性现在做到最好了. 问题也是有的,在此环境下涉及到数据库运行的文件都必须是 utf8编码.这样一来就出现了不兼容,因为在国内大家都是以GBK
gb2312
编的码 包括 17
PHP
.com 网站里的学习源码文件(我用的是77例
中
的) 和很多插件 论坛代码... ...Discuz!也是的 解决起来很简单,把它们的编码都改成 utf8 好了. 批量文件转码工具
php
中
文
gb2312
,
PHP
解决
utf-8
和
gb2312
编码
转换
问题
PHP
解决
utf-8
和
gb2312
编码
转换
问题发布于 2015-02-09 20:54:16 | 153 次阅读 | 评论: 0 | 来源: 网友投递
PHP
开源脚本语言
PHP
(外文名: Hypertext Preprocessor,
中
文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。
PHP
的文...
html+
中
文+utf8编码
转换
,
utf-8
如何转
gb2312
?html编码
转换
方法介绍
我们都知道网站编码有三种格式
utf-8
,gbk,
gb2312
,很多程序员在做网站的时候,会遇到
utf-8
转
gb2312
或者
gb2312
转
utf-8
?下面为您总结一下
utf-8
如何转
gb2312
?html编码
转换
方法。很多程序员都想快速把
utf-8
转
gb2312
?其实
utf-8
转
gb2312
并不是很难,下面我们来讲一下方法。假如你的网站的编码是
utf-8
,现在想修改成
gb2312
,这时候我们就需要一...
php
如何将字体转为gb,利用
php
怎么将
utf-8
与
GB2312
相互
转换
利用
php
怎么将
utf-8
与
GB2312
相互
转换
发布时间:2020-12-25 14:34:37来源:亿速云阅读:76作者:Leah这篇文章将为大家详细讲解有关利用
php
怎么将
utf-8
与
GB2312
相互
转换
,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。复制代码 代码如下:function get_utf8_to_gb($value){$val...
UTF-8
,
GB2312
等编码格式详解
编码一直是让新手头疼的问题,特别是 GBK、
GB2312
、
UTF-8
这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚。但是编码又是那么重要,特别在网页这一块。如果你打出来的不是乱码,而网页
中
出现了乱码,绝大部分原因就出在了编码上了。此外除了乱码之外,还会出现一些其他问题(例如:IE6 的 CSS 加载问题)等等。我写本文的目的,就是要彻底解释清楚这个编码问题!如果你遇
基础编程
21,890
社区成员
140,342
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章