2016-08-03 14 views
1

私はユーザーのレコードを表示する必要があるデータベースを持っています。私は確かに何の悪意あるコードは、このようなユーザーにエコーされていない作るためにhtmlentitiesを使用しています:htmlentitiesで特定の(デンマーク語)文字を許可する

function h($string) { 
     return htmlentities($string, ENT_SUBSTITUTE, "UTF-8"); 
    } 

その後、いつでもI出力、ユーザーへのエントリを関数を呼び出します。問題は、デンマークの文字ÆØÅを表示する必要があり、これらの文字が四角形の疑問符として表示されることです。このサイトにもutf-8エンコーディングがあります。

私はphp.netのhtmlentitiesにリストされているすべてを試してみましたが、例外や別の回避策を作成するための解決策を見つけようとしましたが、何も見つかりませんでした。

誰かがこの問題の回避策を知っていますか?

+0

私はあなたのコードを正確にどのようにあなたの質問にあり、それは私のために働いた。 –

+1

初期クエリ 'SET NAMES utf8'を試してみてください。 'mysqli_set_charset($ link、" utf8 ");'またはPDOを使用している場合、接続を確立する際にエンコーディングを設定することができます。 '' mysql:host = $ host; dbname = $ db; charset = utf8 "'この質問を参照してください:http://stackoverflow.com/questions/4361459/php-pdo-charset-set-names – Ultimater

+1

答えがこれで覆われていない場合私は驚かれるでしょう:http://stackoverflow.com/questions/279170/how-to-support-utf-8完全Webアプリケーション/ 279279 – CD001

答えて

0

2番目のコメントは役に立ちましたか?接続に文字セットを追加することで問題が解決されました。私のPDO接続では、このように置く必要がありました。

$dbh = new PDO('mysql:dbname=myName;charset=utf8;host=myHost', 'myUser', 'myPassw0rd'); 

すべてが正しく表示されます。

関連する問題