Format._Eric 发表于 2012-2-23 19:49:51

急啊!编码问题-utf8中文!MAMP环境

本帖最后由 Format._Eric 于 2012-2-24 10:18 编辑

我今天被一个老问题打败了。求解。
<html>
2 <head>
3   <meta http-equiv="content-type" content="text/html; charset=UTF-8">
4   <title><?=$title?></title>
5 </head>
这样的一个页面里面只有一个form。
里面有个input。name="message"
输入中文后post提交(英文正常,中英文混合的字符串也为空)。
文件编码检查过都是utf8

php里面得到了$_POST['message'],但是他的值为空

用chrome的developer tool看network。message是被成功发出来了的

Format._Eric 发表于 2012-2-23 19:59:19

本帖最后由 Format._Eric 于 2012-2-23 20:00 编辑

POST /message/post HTTP/1.1
Host: beta.www.loverlogs.com
Connection: keep-alive
Content-Length: 55
Origin: www.loverlogs.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
Content-Type: application/x-www-form-urlencoded
Accept: application/json, text/javascript, */*; q=0.01
Referer: www.loverlogs.com/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

Format._Eric 发表于 2012-2-24 00:40:33

本帖最后由 Format._Eric 于 2012-2-24 10:19 编辑

找到原因了。

system/core/Utf8.php
//CI_Utf8::clean_string($str)中的
$str = @iconv('UTF-8', 'UTF-8//IGNORE', $str);
把所有字符都清理了。包括中午、中英,不包括全英




燃雲 发表于 2012-2-24 07:16:13

Format._Eric 发表于 2012-2-24 00:40 static/image/common/back.gif
找到原因了。
把所有utf8字符都清理了。

@iconv('UTF-8', 'UTF-8//IGNORE', $str);
是清除非UTF-8编码。


这语句的意思是:从UTF-8,转码为UTF-8,忽略不能成功转码的。

效果是:略去所有非UTF-8码。


假若真是这PHP语句除去了你的输入,说明输入的并非UTF-8。

Format._Eric 发表于 2012-2-24 10:16:59

本帖最后由 Format._Eric 于 2012-2-24 10:21 编辑

燃雲 发表于 2012-2-24 07:16 static/image/common/back.gif
是清除非UTF-8编码。



我知道这个代码的意思,即便换成//TRANSLIT也无济于事。

另外如果我传的不是utf8,那我传的是什么。代码都再上面了

Refer to http://codeigniter.com/forums/viewthread/208490/

Hex 发表于 2012-2-24 10:41:11

Format._Eric 发表于 2012-2-24 10:16 static/image/common/back.gif
我知道这个代码的意思,即便换成//TRANSLIT也无济于事。

另外如果我传的不是utf8,那我传的是什么。代码 ...

这句话在我这里提交中文没问题。
我觉得还是和你的代码或者服务器环境有关系。

Format._Eric 发表于 2012-2-24 13:47:46

Hex 发表于 2012-2-24 10:41 static/image/common/back.gif
这句话在我这里提交中文没问题。
我觉得还是和你的代码或者服务器环境有关系。 ...

这句话是执行了的吗?

Format._Eric 发表于 2012-2-24 13:48:15

Hex 发表于 2012-2-24 10:41 static/image/common/back.gif
这句话在我这里提交中文没问题。
我觉得还是和你的代码或者服务器环境有关系。 ...

要如何设置呢?

yuzhigang5460 发表于 2012-2-24 14:05:21

Format._Eric 发表于 2012-2-24 13:48 static/image/common/back.gif
要如何设置呢?

把你文件的编码、html的编码、数据库的编码等等都设置成utf-8,基本不会出现此类烦人的问题。

Hex 发表于 2012-2-24 19:53:02

Format._Eric 发表于 2012-2-24 13:48 static/image/common/back.gif
要如何设置呢?

我没有进行任何设置呀。。。
我只是保证所有编码都是 UTF-8。
页: [1] 2
查看完整版本: 急啊!编码问题-utf8中文!MAMP环境