接続文字列で Access DB を ISO-8859-2 から UTF-8 に変更するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/71578

  •  09-06-2019
  •  | 
  •  

質問

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 にエンコードするにはどこでどのようにすればよいですか?

役に立ちましたか?

解決

値文字列があると仮定します 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);

他のヒント

.NET Framework の内部文字列型は UTF-16 です。データを適切に表示できるように、すべてのデータベース アクセスは UTF-16 に変換されます。データベースまたは OLE DB プロバイダーは UTF-16 に変換します。

XML ライター クラス ( XmlDocument または XmlWriter を使用しますよね?) は、出力で UTF-8 に変換されます。

基本的には、余計なことをする必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top