2011-04-13 90 views
1

当我通过特殊字符我的看法字符串,特殊字符显示为问号,例如:使用codeigniter - 为什么欧洲字符不能正确显示?

$data['make'] = 'Quels pneus Dunlop avez-vous acheté ?'; 

$this->load->view("form", $data); 

这看起来在我看来如下:

enter image description here

当我直接在HTML页面输入字符时,它们显示正常。我该如何解决这个问题?

编辑:字符集已设置为:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

回答

1

使用codeigniters ascii_to_entities函数做了诀窍。

$this->load->helper('text'); 
ascii_to_entities($string); 
+0

nops不帮我,在我的csv有一个欧元符号,东西在localhost上工作,但不在服务器上 – 2012-06-08 18:40:31

0

看起来它可能是一个字符集冲突。制作HTML charset声明UTF8并将数据保存为UTF8数据库或文本文件。

在你<head>标签:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

如果使用htmlentities()输出数据变量,然后考虑指定字符集有作为。

echo htmlentities($str, ENT_COMPAT, 'UTF-8'); 
+0

我有这样的字符集已设置。如果我将'acheté'直接粘贴到视图中,它看起来是正确的。好像codeigniter在数据发送到视图之前操纵数据 – Ash 2011-04-13 10:58:28

+0

那么它是来自数据库吗?如果是这样的话?模板代码在哪里? – Treffynnon 2011-04-13 11:07:46

+0

不,它不是来自数据库 - 它是纯文本直接输入到控制器 – Ash 2011-04-13 11:19:45

0

保存视图页面UTF8,并且将做的工作

+0

这似乎是Treffynnon提供的答案的简要版本 - 这个答案补充说他们的不是? – beresfordt 2015-02-22 20:24:09

相关问题