关于UTF-8编码,header的一个问题 <?php header('Content-Type: text/html; charset=utf-8');?>只不过是告诉浏览器你的内容是utf-8,但是事实上你的内容并不是,所以没有达到预期的效果是很正常的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PHP里是否有格式转换的函数? 你确定你的PHP以及HTML也是UTF-8的吗? 谢谢 flyonet(人生如梦【★】梦如人生)的帮助。不过还请在看题之后先思考一下问题的隐含条件我说“跟直接用工具转为utf编码有什么区别?”以及“我在进行一些开发的时候,需要把文件都转为utf格式”。。意味着我不能手工更改文件。。现在我必须处理大批文件,如果是少量文件,我当然可以用工具转化。现在我的情况是这样的:必须用PHP生成或转换生成的UTF-8的文件,而且文件是大批量的。------------------实际上,我借助于一些外部文件,已经实现了这一目的。。现在我只是想知道PHP里有无此类函数可以实现相同目的。 问一下...用什么工具可以批量转换呢?转成utf-8的..帮你UP 可以通过php的函数实现 我记得大概是icon函数 to ranhuan(mirth)是iconv...呵呵,不过好象要安装扩展呢 to icewolf_li:你的方法是不行的,allkill(傲气游)前面已经说过了。。谢谢你,希望你再认真看一次帖子。期待你的再次回复。 在phpbuilder上没找到答案吗?我看好像有答案了哦 不行他们给出的解决方法都不行.....现在我用的就是我给出的第一页的那个解决方法,相信你已经读过了吧。不过我那种方法好象有点不伦不类的所以我想寻找另外的解决方法....地址在这里,呵呵,我怕你想再去看而找不到....http://www.phpbuilder.com/board/showthread.php?s=&threadid=10285992&perpage=15&pagenumber=1 1、使用iconv函数,php4需要安装扩展,php5不需要2、使用php编程实现,所需对照表在网上很容易找到自己构造一个也不难function gb2utf8($gb) { if(!trim($gb)) return $gb; $filename="gb2312.txt"; $tmp=file($filename); $codetable=array(); while(list($key,$value)=each($tmp)) $codetable[hexdec(substr($value,0,6))]=substr($value,7,6); $ret=""; $utf8=""; while($gb) { if (ord(substr($gb,0,1))>127) { $this=substr($gb,0,2); $gb=substr($gb,2,strlen($gb)); $utf8=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080])); for($i=0;$i<strlen($utf8);$i+=3) $ret.=chr(substr($utf8,$i,3)); } else { $ret.=substr($gb,0,1); $gb=substr($gb,1,strlen($gb)); } } return $ret; } function u2utf8($c) { for($i=0;$i<count($c);$i++) $str=""; if ($c < 0x80) { $str.=$c; } else if ($c < 0x800) { $str.=(0xC0 | $c>>6); $str.=(0x80 | $c & 0x3F); } else if ($c < 0x10000) { $str.=(0xE0 | $c>>12); $str.=(0x80 | $c>>6 & 0x3F); $str.=(0x80 | $c & 0x3F); } else if ($c < 0x200000) { $str.=(0xF0 | $c>>18); $str.=(0x80 | $c>>12 & 0x3F); $str.=(0x80 | $c>>6 & 0x3F); $str.=(0x80 | $c & 0x3F); } return $str; } 3、如果你已经拥有jpgraph-1.16或以上,那么可以直接使用其中的jpgraph_gb2312.php 谢谢唠叨1 安装PHP5不太现实...到目前为止我在PHP5下的应用只是实验性的。PHP4中,扩展..难..(非技术原因)2 恩,这个好象不错。不过水平有限,不太看得懂。。最近时间紧,我尽量抽时间来研究一下。不懂还要问老大的呢。。3 这个没有。 组合第二弹问题求助.. base64解密后末尾生成 刚碰php遇到问题 apache总是自动停止服务而且测试php页面让我下载 关于SecFilterScanPOST On是怎么使用的 关于正则。。。。 两个框架之间传值的方法 分析源码中,遇到问题了...请教 紧急求助各位大鸟:$PHP_SELF为什么不能实现循环显示?? 请问有没有办法一下子去掉代码里的所以注释?? 关于对文件操作的问题! 一个关于session的菜鸟问题 php结合javascript的小问题!立即结贴
不过还请在看题之后先思考一下问题的隐含条件我说“跟直接用工具转为utf编码有什么区别?”以及“我在进行一些开发的时候,需要把文件都转为utf格式”。。
意味着我不能手工更改文件。。现在我必须处理大批文件,如果是少量文件,我当然可以用工具转化。现在我的情况是这样的:
必须用PHP生成或转换生成的UTF-8的文件,而且文件是大批量的。------------------
实际上,我借助于一些外部文件,已经实现了这一目的。。
现在我只是想知道PHP里有无此类函数可以实现相同目的。
帮你UP
是iconv...呵呵,不过好象要安装扩展呢
你的方法是不行的,allkill(傲气游)前面已经说过了。。谢谢你,希望你再认真看一次帖子。期待你的再次回复。
我看好像有答案了哦
不过我那种方法好象有点不伦不类的所以我想寻找另外的解决方法....地址在这里,呵呵,我怕你想再去看而找不到....
http://www.phpbuilder.com/board/showthread.php?s=&threadid=10285992&perpage=15&pagenumber=1
2、使用php编程实现,所需对照表在网上很容易找到自己构造一个也不难
function gb2utf8($gb)
{
if(!trim($gb))
return $gb;
$filename="gb2312.txt";
$tmp=file($filename);
$codetable=array();
while(list($key,$value)=each($tmp))
$codetable[hexdec(substr($value,0,6))]=substr($value,7,6); $ret="";
$utf8="";
while($gb)
{
if (ord(substr($gb,0,1))>127)
{
$this=substr($gb,0,2);
$gb=substr($gb,2,strlen($gb));
$utf8=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080]));
for($i=0;$i<strlen($utf8);$i+=3)
$ret.=chr(substr($utf8,$i,3));
}
else
{
$ret.=substr($gb,0,1);
$gb=substr($gb,1,strlen($gb));
}
}
return $ret;
} function u2utf8($c)
{
for($i=0;$i<count($c);$i++)
$str="";
if ($c < 0x80) {
$str.=$c;
}
else if ($c < 0x800) {
$str.=(0xC0 | $c>>6);
$str.=(0x80 | $c & 0x3F);
}
else if ($c < 0x10000) {
$str.=(0xE0 | $c>>12);
$str.=(0x80 | $c>>6 & 0x3F);
$str.=(0x80 | $c & 0x3F);
}
else if ($c < 0x200000) {
$str.=(0xF0 | $c>>18);
$str.=(0x80 | $c>>12 & 0x3F);
$str.=(0x80 | $c>>6 & 0x3F);
$str.=(0x80 | $c & 0x3F);
}
return $str;
} 3、如果你已经拥有jpgraph-1.16或以上,那么可以直接使用其中的jpgraph_gb2312.php
2 恩,这个好象不错。不过水平有限,不太看得懂。。最近时间紧,我尽量抽时间来研究一下。不懂还要问老大的呢。。
3 这个没有。