テーブルを持つMySql DBがあります
CREATE TABLE `pp` (
[...]
`Title` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
[...]
) ENGINE=InnoDB DEFAULT CHARSET=cp1251
テーブルは PHP によって入力されており、データを読み取って Web ページに書き込む作業中の PHP スクリプトがあります。PHP は「windows-1251」エンコーディングを使用し、正常に動作します。
サーバー側の変数は次のとおりです。
character_set_client:latin1
character_set_connection:latin1
character_set_database:utf8
character_set_filesystem:binary
character_set_results:latin1
character_set_server:latin1
character_set_system:utf8
私は、(とりわけ)そのデータを読み取り、Windows-1251でエンコードされたビューに表示するASP.NET MVC3アプリケーションに取り組んでいます。MySql .NET Connector v.6.5.4 を使用して DB に接続し、データを読み取ります。
問題は、結果の Web ページ (ビュー) のキリル文字が壊れていることです。
さまざまな接続文字列を試しました
charset=cp1251 or
charset=latin1 or
charset=utf8
さらに、実行してみました
SET NAMES cp1251 or
SET NAMES latin1 or
SET NAMES utf8
接続直後ですが、成功しませんでした。
繰り返しますが、PHP ではすべて正常に動作します。ASP.NET ではありません。
cp1251 と latin1 の両方が 1 文字あたり 8 ビットのエンコーディングであり、データ変換がないため、キリル文字を latin1 列に格納してはならず、PHP が正常に動作することはわかっています。しかし、ASP.NET を使用してそれを複製することはできません。
助けてください。