接続文字列で Access DB を ISO-8859-2 から UTF-8 に変更するにはどうすればよいですか?
質問
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 に変換されます。
基本的には、余計なことをする必要はありません。
所属していません StackOverflow