用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5914|回复: 12
收起左侧

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

[复制链接]
发表于 2012-2-23 19:49:51 | 显示全部楼层 |阅读模式
本帖最后由 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是被成功发出来了的
 楼主| 发表于 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
 楼主| 发表于 2012-2-24 00:40:33 | 显示全部楼层
本帖最后由 Format._Eric 于 2012-2-24 10:19 编辑

找到原因了。
PHP复制代码
 
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
找到原因了。
把所有utf8字符都清理了。
PHP复制代码
@iconv('UTF-8', 'UTF-8//IGNORE', $str);
复制代码

是清除非UTF-8编码。


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

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


假若真是这PHP语句除去了你的输入,说明输入的并非UTF-8。
 楼主| 发表于 2012-2-24 10:16:59 | 显示全部楼层
本帖最后由 Format._Eric 于 2012-2-24 10:21 编辑
燃雲 发表于 2012-2-24 07:16
是清除非UTF-8编码。

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

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

Refer to http://codeigniter.com/forums/viewthread/208490/
发表于 2012-2-24 10:41:11 | 显示全部楼层
Format._Eric 发表于 2012-2-24 10:16
我知道这个代码的意思,即便换成//TRANSLIT也无济于事。

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

这句话在我这里提交中文没问题。
我觉得还是和你的代码或者服务器环境有关系。
 楼主| 发表于 2012-2-24 13:47:46 | 显示全部楼层
Hex 发表于 2012-2-24 10:41
这句话在我这里提交中文没问题。
我觉得还是和你的代码或者服务器环境有关系。 ...

这句话是执行了的吗?
 楼主| 发表于 2012-2-24 13:48:15 | 显示全部楼层
Hex 发表于 2012-2-24 10:41
这句话在我这里提交中文没问题。
我觉得还是和你的代码或者服务器环境有关系。 ...

要如何设置呢?
发表于 2012-2-24 14:05:21 | 显示全部楼层
Format._Eric 发表于 2012-2-24 13:48
要如何设置呢?

把你文件的编码、html的编码、数据库的编码等等都设置成utf-8,基本不会出现此类烦人的问题。
发表于 2012-2-24 19:53:02 | 显示全部楼层
Format._Eric 发表于 2012-2-24 13:48
要如何设置呢?

我没有进行任何设置呀。。。
我只是保证所有编码都是 UTF-8。

本版积分规则