0

ISO-8859-2形式のデータベースがありますが、UTF-8でXMLを作成する必要があります。これは、UTF-8でprinitngする前にデータベースをエンコードする必要があることを意味します。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 に答える