2013-03-16 93 views
2

此:差异UTF8输出在笨(希腊)字符,标准的HTML形式VS辅助

<td><?php echo form_input('post_title',set_value('post_title',$post->post_title)); ?></td> 

将呈现希腊字符(或大于拉丁字符的任何其他),作为& #XXX在页面上。

此:

<p>Title: <input name="post_title" type="text" value="<?php echo $post->post_title ?>"/></p> 

会正确显示。

Web page

我的MySQL类型是MyISAM和utf8_latin_ci整理。

试图从phpMyAdmin的浏览也使我在希腊& #XXX ...

phpMyAdmin

哪里错了吗?

关于形式的辅助方法

,并会随时添加基于您的配置文件中的字符集 值的属性接收字符集P.S从笨手册。

我的配置文件设置为

$config['charset'] = 'UTF-8'; 

UPDATE:我的页面标题:

GET /posts/editpost/23 HTTP/1.1 
Host: my.xxx.com 
Connection: keep-alive 
Cache-Control: max-age=0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22 
Referer: http://my.xxx.com/posts 
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 

回答

1

这是设置的字符的一般性问题。请保持字符集编码在每个地方相同,如HTML文件,CI配置文件和数据库中最重要的地方。在创建数据库时,请选择UTF-8或任何适合您的语言的其他语言(适用于大多数UTF-8语言)。或者你也可以改变它为单个表。请进行这些更改,您将获得希腊语的正确答案。 谢谢

+0

虽然我明白这个一般性的,我无法理解为什么在同一页面中,我可以看到带有std HTML的字符,如果我使用CI命令,则无法看到它们。我会用我的页眉更新我的第一篇文章。 – e4rthdog 2013-03-16 05:51:53

+0

@ e4rthdog'&xxx;'是html专用的(用ASCII编码任何字符,但它只能在HTML上下文中使用),如果使用UTF-8,则UTF-8完全无用,因为UTF-8支持这些字符。 – Esailija 2013-03-17 16:24:20