2011-11-18 11 views
1

ほとんど同じ質問がありましたが、私はまだ私の問題の答えを見つけることができませんでした。 "lesÎlesAçores"をdbに配置したいと思います。PHPからmysqlへの特殊文字

  • SET Names 'ut8)
  • $mysqli->set_charset("utf8");
  • mysql_real_escape_string()
  • htmlentities(ここでI got htmlentities、私は別の方法があるかどうかを知りたい):私はusinを試してみました

    les Îles Açores 
    

    :しかし、私は取得します

コード:

$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); 

誰かが私のlitle問題を解決するためにどのようなアイデアを持っていますか? ありがとうございます!私が見ることができる

+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' テーブルが正しいCHARSETを使用していることを確認してください...

1

が動作していないことを意味し例えば:

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

フィールドはVARCHAR(100)で、charset = utf8_general_ci – user750079

1
  1. は、あなたが実際に(あなたはあなたのコードがUTF8に設定エンコーディングを持っている必要があります書き込み、あなたのIDE /エディタを意味する)UTF8で書いていることを確認します。
  2. フェッチした後、またはDB内でのみ、レコードがDBとページの両方で破損していますか?
0

あなたは "UTF-8" あなたにhtmlentitiesへのパラメータ、およびこの方法がhtml_entity_decodeを渡しますか?

html_entity_decode($ text、ENT_QUOTES、 "UTF-8");