1

MySQLデータベースをバックエンドとして使用する従来のASPを使用してクライアント用のサイトを構築しました。テストサーバーではすべて正常に動作しますが、サイトをライブサーバーに転送すると、データベースから取得したすべてのヘブライ語データがぎこちなく出てきました...

データベースはUTF-8として設定されています。phpmyadminでデータベースの内容を確認しましたが、hebreは読み取り可能です。

問題はODBCドライバーにあるようです。私のサーバーではODBC5.1を使用していますが、ライブサーバーでは3.51を使用しています...このodbcドライバーではヘブライ語が問題だったようですが、イスラエルのホスティング会社であるにもかかわらず、ホスト会社は更新を拒否しています... 。

私のデータベース接続文字列は次のようになります:

"DRIVER = {MySQL ODBC 3.51 Driver}; SERVER = localhost; DATABASE = 100298270_dbname; UID = username; PASSWORD = pass; OPTION = 0; charset = utf8;"

だから、何時間も読んだ後、私は次の解決策を見つけましたが、どれも役に立ちませんでした:

  1. 他のクエリの前にデータベースでこのクエリを実行する:

    名前を設定するutf8"

  2. これらすべてのクエリを実行する:

    Call SqlQuery( "SET character_set_client = utf8")Call SqlQuery( "SET character_set_connection = utf8")Call SqlQuery( "SET character_set_database = utf8")Call SqlQuery( "SET character_set_results = utf8")Call SqlQuery( "SET character_set_server = utf8") SqlQuery( "SET NAMES utf8")を呼び出します

しかし、実行しても何も変わらないようです。このソリューションを実装しようとしました。MySQLODBC 3.51ドライバーUTF-8エンコーディングですが、ホスティング用のPLESKコントロールパネルにしかアクセスできないため、デフォルトのDSN接続しか作成できません。

ホスティング会社のテクニカルサポートに相談したところ、他のASPサイトは正常に機能しているとのことでした(3.5 ODBCドライバーがUnicodeをサポートしていないという既知の問題ですが)。そのため、自分で解決策を見つける必要があります... i 「DSNなしの接続...でMySQLデータベースに接続するように言われました。

誰かが私のための解決策を持っていますか?

4

1 に答える 1

1

ASP はデフォルトで ANSI コード ページを使用するため、CodePage も変更する必要があります。

http://msdn.microsoft.com/en-us/library/ms524628(v=vs.90).aspx

また、Charset が UTF-8 に設定されていることを確認する必要があります。

Response.Codepage = 65001  'Forces ASP to use UTF-8 for string encoding
Response.Charset = "UTF-8" 'Sets charset variable of content type response header
Response.LCID = 1037 'Hebrew Locale ID

ブラウザーに UTF-8 の使用を強制するには、HTML メタ タグを追加する必要がある場合もあります。

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

また、これを各クエリの先頭に追加してみてください。

SET NAMES HEBREW
于 2012-11-26T09:32:48.123 に答える