PHP 读取两个不同用户的txt文件,会输出两种不同的编码,请问如何把他们的字符编码统一,进入DB会乱码啊

 我来答
imsuperman1015
2011-04-08 · TA获得超过203个赞
知道答主
回答量:100
采纳率:0%
帮助的人:106万
展开全部
function gb2utf8($gbstr){
if(function_exists('iconv'))
{
return iconv('gbk','utf-8//ignore',$gbstr);
}
global $CODETABLE;
if(trim($gbstr)=="")
{
return $gbstr;
}
if(empty($CODETABLE))
{
$filename = "data/gb2312-utf8.dat";
$fp = fopen($filename,"r");
while ($l = fgets($fp,15))
{
$CODETABLE[hexdec(substr($l, 0, 6))] = substr($l, 7, 6);
}
fclose($fp);
}
$ret = "";
$utf8 = "";
while ($gbstr != '')
{
if (ord(substr($gbstr, 0, 1)) > 0x80)
{
$thisW = substr($gbstr, 0, 2);
$gbstr = substr($gbstr, 2, strlen($gbstr));
$utf8 = "";
@$utf8 = u2utf8(hexdec($CODETABLE[hexdec(bin2hex($thisW)) - 0x8080]));
if($utf8!="")
{
for ($i = 0;$i < strlen($utf8);$i += 3)
$ret .= chr(substr($utf8, $i, 3));
}
}
else
{
$ret .= substr($gbstr, 0, 1);
$gbstr = substr($gbstr, 1, strlen($gbstr));
}
}
return $ret;
}
这是 gbk转 utf8 的函数
现在流行的都是 utf8 编码
你从 txt中读取出来之后 把所获取的内容传递给该函数
该函数会把编码转换成 utf8 并返回

这个是我以前做采集程序的时候用过的 ~ 因为有些网站使用的是gbk编码
但是我数据表是 utf8 入库的时候出现乱码 用该函数解决了这个问题 你可以研究一下!
追问
这两种编码如何判断啊
追答
一般你读txt文本的话 大部分都是 gbk编码
比如你读取txt文本的结果存放在
$str 变量中的话 你就不用管他是什么编码
直接
$str = gb2utf8($str);
这样调用该函数 他会返回一个 utf8编码的内容
在把他存到数据表里就OK了 试一试 如果不行在追问 ~
jamy_48
2011-04-08 · TA获得超过572个赞
知道小有建树答主
回答量:928
采纳率:0%
帮助的人:384万
展开全部
应该是txt文件的编码方式的问题吧,你先要确定两个txt都是什么编码储存的,再通过程序来统一
更多追问追答
追问
文件编码是UTF8还是GB怎么判断呢?
追答
你用记事本打开txt文件,选择另存为,下面就会显示是什么编码了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自清源山倾国倾城的黑耳鸢
2011-04-08
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
用mb_convert_encoding() 或者iconv()函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zj03iic
2011-04-09 · TA获得超过323个赞
知道小有建树答主
回答量:552
采纳率:100%
帮助的人:370万
展开全部
文档->文件编码->跟改文件编码

你生成的文档加一句 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

最好在<title>之前
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式