2011-07-07 17 views
1

私は、特別なギリシャ文字µをMySQLデータベースから取得しようとしていますが、HTMLではを示す です。データベースから特殊文字を取り出す方法は?

私のHTML文字セット:content="text/html; charset=windows-1252"

加えて、それがまた戻って、データベース内の比較するために、文字を使用できるようにする必要がある文字を取得した後。

私は&#956のようなHTMLコードをデータベースに入れてみました。 HTMLはそれをµに変換するので、データベースと比較することはできません。

どうすれば適切に行うことができますか?

+0

mysqlで文字セットを正しく定義しましたか? –

+0

私はmysqlのデフォルトの文字セットがlatin1だと信じています – BumbleB2na

+0

私はそれがデフォルトの文字セットであると確信しています。どちらを設定する必要がありますか? – TheRealDK

答えて

1

は、特殊文字(based off of this post)を含む、あなたのテーブルの上にこれを試してみてください:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8; 
+0

私はこれを試したが、依然として立ち往生した。 – TheRealDK

+1

これは、テーブルの文字セットを変換しますが、すでに格納されている各列の文字セットを変換したり、答えの最終データベースステップに格納されているデータを変換したりしません。 – shelhamer

2

まず、私はあなたの文字セットとしてUTF8を使用することをお勧めします。あなたが各テーブルに行う必要があります

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8; 

:このSQLを適用UTF8に上にテーブルを切り替える

ALTER DATABASE db_name CHARACTER SET utf8; 

次に、:データベースのデフォルトを切り替えることにより

スタート。

最後に、残念ながら、古いcharset(varchar、textなど)で作成されたすべての文字データ列を変換する必要があります。あなたは既に保存された文字がマングルされないように、BLOBに最初の鋳造方法によってこれをしなければならない:converting database charset columns

alter table tbl_name change col_name col_name LONGBLOB; 
alter table tbl_name change col_name col_name LONGTEXT CHARACTER SET utf8; 

Wordpressのは、この手順を実行する方法についてのコラム型ガイドによって、列の型を発行しています。

(それはHTMLの場合/または終了せずに)そして、最後に文字セットあなたのXHTMLでの宣言を更新します。

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

このプロセスは困難ですが、データベースを変換します。 utf8でdbを起動する方がはるかに簡単です。

これはすべてMySQL 5を前提としており、そのためにはMysql 5 ALTER TABLEの参照が表示されます。

0

Shelhamerの回答を参照してください。ただし、db接続をutf8に設定する必要もあります。 DBに接続した直後にmysql_set_charset('utf8');を使用することができます。 your'reを接続した後、別の方法として、次のクエリを実行します。

SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'; 

しかし、私はまだあなたがにhtmlentitiesを使用することをお勧めします()であることを確認するためにウェブサイト上のコンテンツを表示する際に、すべての有効なHTMLです。あなたがエンコーディングをミックスした場合、Firefoxはバーフする傾向があります。

0

(PHP版)utf8_encode()をデータベースに保存する前に使用してください。 これで問題は解決します

関連する問題