⑴ php iconv转换 部分字符出现乱码
应该不是iconv的问题,你应该看看,你的字符输出的前后是否有别的html元素。
把你的测试文件贴出来看看
⑵ 如何解决PHP中文乱码问题
PHP中文乱码主要是编码不对,存在以下两种情况,你以此检查一下 ,改对编码就行了
1、 php文件本身的编码与网页的编码应匹配
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头 :header(“Content-Type: text/html; charset=utf-8"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,如果使用 session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->UTF-8签名,选择总 是删除,再保存就可以去掉BOM信息了。
2. php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。
⑶ php乱码问题,烦死人了。
首先注意你文件的内码是什么,如果你有装iconv的话,可以通过iconv转码的
⑷ 电脑是日文系统的,php实现上传文件时,如果是中文名,就会乱码,使用iconv函数也不行,怎么破
先确定php文件的编码格式是不是UTF-8的,比如在头部加:header('Content-Type: multipart/form-data;charset=utf-8');
再确认下文件上传时提交的文件名是否也是这个格式的
⑸ php读取txt文本输出时乱码如何解决
$text = file_get_contents($filePath);
//$encodType = mb_detect_encoding($text);
define('UTF32_BIG_ENDIAN_BOM', chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));
define('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));
define('UTF16_BIG_ENDIAN_BOM', chr(0xFE) . chr(0xFF));
define('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE));
define('UTF8_BOM', chr(0xEF) . chr(0xBB) . chr(0xBF));
$first2 = substr($text, 0, 2);
$first3 = substr($text, 0, 3);
$first4 = substr($text, 0, 3);
$encodType = "";
if ($first3 == UTF8_BOM)
$encodType = 'UTF-8 BOM';
else if ($first4 == UTF32_BIG_ENDIAN_BOM)
$encodType = 'UTF-32BE';
else if ($first4 == UTF32_LITTLE_ENDIAN_BOM)
$encodType = 'UTF-32LE';
else if ($first2 == UTF16_BIG_ENDIAN_BOM)
$encodType = 'UTF-16BE';
else if ($first2 == UTF16_LITTLE_ENDIAN_BOM)
$encodType = 'UTF-16LE';
//下面的判断主要还是判断ANSI编码的·
if ($encodType == '') {//即默认创建的txt文本-ANSI编码的
$content = iconv("GBK", "UTF-8", $text);
} else if ($encodType == 'UTF-8 BOM') {//本来就是UTF-8不用转换
$content = $text;
} else {//其他的格式都转化为UTF-8就可以了
$content = iconv($encodType, "UTF-8", $text);
}
⑹ php 添加语句数据库出现乱码
连接完数据库要mysql_query('SET
NAMES
GBK');
该PHP文件保存类型要为ANSI
数据库的连接形式什么的也要是gbk的
最后实在不行你就把插入到数据库中的数据执行一下转码iconv(“UTF-8″,”GBK”,$data);
再不行
哥也无语了
⑺ 如何解决PHP在utf-8编码下中文显示乱码问题
如果php文件已经在头部设置编码格式为utf-8,在运行的时候还出现乱码问题,可能是由于文件编码格式不匹配或者头部有bom信息输出导致乱码。解决办法:
设置保存文件编码格式为utf-8;
去掉文件头部bom信息;
⑻ PHP 输出简单的中文 乱码问题
解决php中中文乱码问题方法
php文件本身的编码与网页的编码应匹配
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<metahttp-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头:header(“Content-Type: text/html; charset=utf-8"),静态页面添加<metahttp-equiv="Content-Type" content="text/html; charset=utf-8">,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,如果使用session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->UTF-8签名,选择总是删除,再保存就可以去掉BOM信息了。
php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。
如果你的HTML文件文件出现了乱码问题,那么你可以在head标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。
(8)phpiconv乱码扩展阅读:
解决PHP 输出简单的中文 乱码问题的其他方法:
在php的echo前面加入header("Content-Type:text/html;charset=gb2312")
把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />中的UTF-8改成gb2312
⑼ PHP读取Access数据库 出乱码
access的中文版默认是GBK格式的,是无法改变字符类型的,所以用php读取的时候会乱码。
解决方法是:使用iconv转换
一、使用 iconv函数制作一个转码的自定义从GBK转到UTF-8的函数,如以下代码:
function enc($c){return iconv('gbk','utf-8',$c);}
二、为了写入数据库的编码是符合数据库需要的,所以我们还要制作一个从UTF-8转向GBK的函数:
function dec($c){return iconv('utf-8','gb2312',$c);}
制作好了转码函数,接下就是正常使用了。在从数据库里面调数据显示在页面的时候使用enc()函数,从页面提交数据到数据库时使用dec()函数,这样就可以很好的解决PHP使用UTF-8编码,ACCESS使用系统默认编码的问题了。