我有一个带表的 MySql DB
CREATE TABLE `pp` (
[...]
`Title` varchar(255) CHARACTER SET latin1 DEFAULT NULL,
[...]
) ENGINE=InnoDB DEFAULT CHARSET=cp1251
该表已由 PHP 填充,并且有一个有效的 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
我正在开发一个 ASP.NET MVC3 应用程序,该应用程序(除其他外)读取该数据并在 windows-1251 编码视图中显示它们。我使用 MySql .NET Connector v.6.5.4 连接到数据库并读取数据。
问题是:生成的网页(即视图)上的西里尔数据已损坏。
我尝试了各种连接字符串
charset=cp1251 or
charset=latin1 or
charset=utf8
此外,我尝试执行
SET NAMES cp1251 or
SET NAMES latin1 or
SET NAMES utf8
连接后立即,但没有任何成功。
再次:在 PHP 中一切正常;在 ASP.NET 中没有。
我知道西里尔文本不应该存储在 latin1 列中,并且 PHP 可以正常工作,因为 cp1251 和 latin1 都是每字符 8 位编码并且没有数据转换。但我无法使用 ASP.NET 复制它。
请帮忙。