Cannot display Chinese data from database

G

Guest

Some chinese characters data (in Big5 encoding) is stored in database.
I tried to display the data in an aspx but the characters cannot display
correctly.
I tried anything I think is related:
- Setting the charset, codepage of the page
- changed the responseEncoding in web.config to Big5
- hardcoded Response.ContentEncoding to 950 (codepage of Big5)
- Change the file encoding to Big5 (in save option)
None of them work.

For the same data, it can displayed correctly in my classic asp.

Code (.NET)
private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection connection = new
SqlConnection(ConfigurationSettings.AppSettings["NewsDB"]);
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "SELECT Newsid, StoryDate, StoryTime, Headline
FROM tblLatestHeader";
command.CommandType = CommandType.Text;

SqlDataReader dataReader;
connection.Open();
dataReader = command.ExecuteReader();
string html = "";
while (dataReader.Read())
{
html += dataReader[3].ToString();
}
connection.Close();
Label1.Text = html;
Label2.Text = "你好嗎"; // this is chinese character which can display
correctly
}


Work in classic asp:
<%
Set connection = Server.CreateObject("ADODB.Connection")
connection.ConnectionString = "Provider=sqloledb;Data Source=MyDB;Initial
Catalog=NewsDB;User Id=sa;Password=fakepwd;"
connection.open
Set rs = connection.execute("SELECT Newsid, StoryDate, StoryTime, Headline
FROM tblLatestHeader")

While Not rs.eof
response.write rs("Headline") & "<br>"
rs.movenext
wend
%>
 
J

Joerg Jooss

Jason said:
Some chinese characters data (in Big5 encoding) is stored in database.
I tried to display the data in an aspx but the characters cannot
display correctly.
I tried anything I think is related:
- Setting the charset, codepage of the page

The Codepage directive in ASP.NET 2.0 is the same as reponseEncoding in
web.config.
- changed the responseEncoding in web.config to Big5
- hardcoded Response.ContentEncoding to 950 (codepage of Big5)

And these are identical as well (the latter, like Codepage, works at
the page level though).
- Change the file encoding to Big5 (in save option)

That's only relevant at buildtime.
None of them work.

For the same data, it can displayed correctly in my classic asp.

Code (.NET)
private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection connection = new
SqlConnection(ConfigurationSettings.AppSettings["NewsDB"]);
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandText = "SELECT Newsid, StoryDate, StoryTime,
Headline FROM tblLatestHeader";
command.CommandType = CommandType.Text;

SqlDataReader dataReader;
connection.Open();
dataReader = command.ExecuteReader();
string html = "";
while (dataReader.Read())
{
html += dataReader[3].ToString();
}
connection.Close();
Label1.Text = html;
Label2.Text = "你好嗎"; // this is chinese character which
can display correctly
}

If your hardcoded sample text is displayed correctly, there's quite
likely a problem with your ADO.NET provider. Are the correct characters
displayed when you debug your code right after retrieving strings from
the database?

Cheers,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,740
Latest member
AdolphBig6

Latest Threads

Top