0

我有一个 ISO-8859-2 格式的数据库,但我需要以 UTF-8 创建 XML。这意味着我必须在以 UTF-8 打印之前对数据库进行编码。我对 ASP.Net 知之甚少,所以我希望有人能提供帮助。

在 PHP 中,我会做这样的事情:

db_connect();
mysql_query("SET NAMES 'UTF8'");
mysql_query("SET character_set_client='UTF8'");

这是我用于数据库连接的 ASP.Net 代码:

 'CONNECTION TO DATABASE
 dim dbconn,sql,dbcomm
 dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=" & Server.MapPath("../baze/test.mdb"))

 dbconn.Open()          

 sql="SELECT * FROM nekretnine, tipovinekretnina WHERE nekretnine.idtipnekretnine = tipovinekretnina.idtipnekretnine ORDER BY nekretnine.idnekretnine"
 dbcomm=New OleDbCommand(sql,dbconn)
 dbread=dbcomm.ExecuteReader()

 while dbread.Read()

我在哪里以及如何编码为 UTF-8?

4

2 回答 2

2

假设您在 中有一个值字符串str,这是纯 .NET 执行此操作的方式。

var encoding = System.Text.Encoding.GetEncoding("iso-8859-2");

var bytes = System.Text.Encoding.Convert(encoding, System.Text.Encoding.Default, encoding.GetBytes(str));

var newString = System.Text.Encoding.Default.GetString(bytes);
于 2008-09-16T12:17:35.210 回答
1

.NET Framework 的内部字符串类型是 UTF-16。所有数据库访问都将转换为 UTF-16,以便您可以适当地查看数据:数据库或 OLE DB 提供程序将转换为 UTF-16。

XML 编写器类(您使用的是XmlDocument 或 XmlWriter,对吗?)然后将在输出中转换为 UTF-8。

基本上,您不需要做任何额外的事情。

于 2008-09-16T12:17:30.233 回答