2

这:

<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>

会正确显示。

网页

我的 MySQL 类型是 MyISAM 和 utf8_latin_ci 排序规则。

尝试从 phpMyAdmin 浏览也给了我 &#xxx 中的希腊语...

phpMyAdmin

错误在哪里?

PS来自codeigniter手册关于表单帮助方法

并且将始终根据配置文件中的字符集值添加属性 accept-charset。

我的配置文件设置为

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

更新:我的页眉:

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
4

2 回答 2

1

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

于 2013-03-16T05:37:41.383 回答
0

尝试使用这三个 Text 辅助函数:

ascii_to_entities()

或者

entities_to_ascii()

或者

convert_accented_characters()

取决于您如何将其保存在数据库中

它们来自 CI 的 文本助手

http://ellislab.com/codeigniter/user-guide/helpers/text_helper.html

并且不要忘记加载这个助手;)

于 2013-03-16T12:51:45.727 回答