2011-11-18 67 views
1

mysql的,我知道已经有很多几乎相同的问题,但我仍然没有找到答案我的问题。 我想将“lesÎlesAçores”放入数据库。但我得到:特殊字符从PHP

les Îles Açores 

我试过全光照:

  • SET Names 'ut8)
  • $mysqli->set_charset("utf8");
  • mysql_real_escape_string()
  • htmlentities(在这里我got htmlentities,但我想知道是否有另一种方式)

代码:

$name_fr = $_POST["name_fr"]; $name_nl = $_POST["name_nl"]; 
$arr_kollommen = array("NAME_FR","NAME_NL"); 
     $arr_waardes = array($naam_nl,$naam_fr); 
     $obj_db->insert("landen",$arr_kollommen,$arr_waardes); 

是否有人有一个想法如何解决我的痘痘问题吗? 非常感谢!

+0

您是否使用过“SET Names'ut8)”或“SET NAMES'utf8'”。前者(如上所述)是错误的 – calumbrodie

回答

0
$name_fr = $_POST["name_fr"]; 
$name_nl = $_POST["name_nl"]; 
$arr_kollommen = array("NAME_FR","NAME_NL"); 
$arr_waardes = array($naam_nl,$naam_fr); 
$obj_db->insert("landen",$arr_kollommen,$arr_waardes); 

尝试使用,而不是对编码解码UTF_8。 这样的:

$name_fr = $_POST["name_fr"]; 
$name_nl = $_POST["name_nl"]; 
$naam_fr = utf8_decode($naam_fr); 
$naam_nl = utf8_decode($naam_nl); 
$arr_kollommen = array("NAME_FR","NAME_NL"); 
$arr_waardes = array($naam_nl,$naam_fr); 
$obj_db->insert("landen",$arr_kollommen,$arr_waardes); 
+0

这工作。谢谢。 – user750079

0

2个可能的原因,我可以看到:

1)您的数据库没有特色UTF-8场

2)当你从服务器读取你的数据,你是不是设置连接为utf -8。如果在写入时必须将其设置为utf-8,则在阅读时还必须将其设置为utf-8。

检查使用phpMyAdmin如果数据被破坏了......如果是,那么就意味着你的SET names'utf-8' 是不工作...

1

确认表使用正确CHARSET,例如:

CREATE TABLE myTable (
    one VARCHAR(255), 
    two VARCHAR(255) 
) DEFAULT CHARSET=utf8; 
+0

这些字段是VARCHAR(100)和字符集= utf8_general_ci – user750079

1
  1. 确保你实际上是在UTF8写(这意味着你的IDE /编辑器,你写你的代码必须具有编码设置为UTF-8)。
  2. 记录损坏了数据库和您的网页后,您获取它或仅在数据库?
0

你通过 “UTF-8” 参数到您ヶ辆,并html_entity_decode这样?

html_entity_decode($文本,ENT_QUOTES, “UTF-8”);