2011-07-24 11 views
4

私はデータベースやPHPにはあまり経験がありません。Mysql to PHP、ドイツ語、スウェーデン語、アイスランド語などの問題の手紙

私はint IDtext RUBRIKtext ARTICLEと呼ばれる3列のNEWSと呼ばれるテーブルとウェブサーバ上phpadminに単純なデータベースを作っています。

私がSELECT * FROM NEWS the result from ID and RUBRIKをうまく使っても、ARTICLEの結果が"null"の場合、結果は役に立ちます。誰が何が間違っているか知っているか。

phpmyadminでは、swedish文字を含むテキストを列に追加するのに最適です。phpmyadminでは、正しく保存されたテキストを表示することができます。テキストがphpで呼び出されたときに動作します。

私は index.phpがちょうど index.phpからの答えが print(json_encode($output));

PSであるデータベースと私のアンドロイドアプリケーションを接続するために働いているので、私はとMS Notesのindex.phpファイルを保存しようとしている、index.phpファイルは、データベースとの対話に使用

ANSIおよびUTF-8コーディング。違いはありません、私はまた、それが作ら使用して、私がしようとすることを推奨したコマンドmysql_query("set names utf8");を試してみました などなどutf8_swedishutf8_general_binutf8_general_cilatin1_general_ciphpmyadminで見つけることができるすべての照合順序を変更することにより、自分のデータベースを操作しようとしていますデータベースは"/&aumi"と同様の文字を返します。

誰でも私を助けることができたら本当に感謝します。

ここにphpファイルがあります。 json_encode()

<?php 
    $con = mysql_connect("mysqlserver","user","passwords"); 

    if(!$con) 
    { 
     die(' funkar ej: ' . mysql_error()); 
    } 

    mysql_select_db("database", $con); 

    $q=mysql_query("SELECT * FROM NEWS"); 

    while($e=mysql_fetch_assoc($q)) 
     $output[]=$e; 

    print(json_encode($output)); 

    mysql_close(); 
?> 

答えて

0

てみエンコーディングのように、ちょうどあなたのmysql_query()前に、使用UTF8を強制する必要があります。

+0

$ eは配列であり、 'utf8_encode()'は文字列しか受け付けないので、動かないかどうかはわかりません。 – Simon

+0

'$ e'の中で各値を反復する' for'を使って行うことができます。 D –

+0

コードを変更したところ、 "åäö"の代わりに "\ u00e5 \ u00e4 \ u00e4"が返されました –

1

あなたはutf8_encode() を使用する必要がある、あなたはそれで各$eエンコードutf8_encode (string $data)でPHPの内部そうmysql_query("SET NAMES utf8");

+0

私はmysql_query( "SET NAMES utf8")を試しました。スウェーデン語の文字を "å、ä、ö"と返さなかったのは、\&auldのようなHTMLコードとして返されましたが、正確な組み合わせは覚えていませんが、その文字のhtmlコードだと思います。 –

+0

はい。スウェーデン語の文字も戻ってきていて、 'ö 'という文字は' json_encode() 'を使うと" \ u00f6 "として返されます。あなたがそれを解読すると、それは "ö"に変換されます。 ** EDIT:**これは分かっていますが、 'var_dump($ output)'を使って配列をダンプすると正しい文字が表示されます。 – Simon

+0

アンドロイドアプリケーションからそれを使用しようとします。現時点でwebbserverにログインする際の問題。 –

0

照合タイプを変更するだけでなく、DBテーブルのデフォルト文字セットも変更する必要があります。また、 'set names utf8'を使用してください。

関連する問題