出现乱码是怎么回事呢,该怎么解决呢?

frieda 2004-10-16 11:29:06
我安装了Microsoft .NET Framework SDK 快速入门教程,在学习“Web 窗体控件引用”这节的datagrid小节的datagrid9.aspx例子时,我用“记事本”修改了它的源代码,加入了一些中文字符,如下:

'datagrid9.aspx ****************************
<%@ Import Namespace="System.Data" %>

<html>
<script language="VB" runat="server">

Dim SortField As String

Function CreateDataSource() As ICollection

Dim dt As DataTable
Dim dr As DataRow
Dim i As Integer

'create a DataTable
dt = New DataTable
dt.Columns.Add(New DataColumn("IntegerValue", GetType(Integer)))
dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
dt.Columns.Add(New DataColumn("DateTimeValue", GetType(DateTime)))
dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean)))
dt.Columns.Add(new DataColumn("CurrencyValue", GetType(Double)))

'Make some rows and put some sample data in
For i = 1 To 9
dr = dt.NewRow()
dr(0) = 9-i
Select i
Case 1
dr(1) ="刘德华" '以下几行是修改部分
Case 2
dr(1)="动力火车"
Case 3
dr(1)="郭峰"
Case 4
dr(1)="离人"
Case 5
dr(1)="林志炫"
Case 6
dr(1)="只为你唱"
Case 7
dr(1)="让我再看你一眼"
Case 8
dr(1)="冰雨"
Case 9
dr(1)="练习"
End Select
dr(2) = DateTime.Now.ToShortTimeString
If (i Mod 2 <> 0) Then
dr(3) = True
Else
dr(3) = False
End If
dr(4) = 1.23 * (i + 1)
'add the row to the datatable
dt.Rows.Add(dr)
Next

'return a DataView to the DataTable
Dim dv as DataView = New DataView(dt)
dv.Sort = SortField
CreateDataSource = dv
End Function

Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
If SortField = "" Then
SortField = "IntegerValue"
End If
BindGrid
End If
End Sub

Sub MyDataGrid_Sort(sender As Object, e As DataGridSortCommandEventArgs)
SortField = e.SortExpression
BindGrid
End Sub

Sub BindGrid()
MyDataGrid.DataSource = CreateDataSource()
MyDataGrid.DataBind
End Sub


</script>

<body>

<h3><font face="Verdana">Custom Sorting in DataGrid</font></h3>

<form runat=server ID="Form1">

<ASP:DataGrid id="MyDataGrid" runat="server"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#cccccc"
HeaderStyle-ForeColor="black"
AutoGenerateColumns="false"
AllowSorting="true"
OnSortCommand="MyDataGrid_Sort"
>
<Columns>
<asp:BoundColumn HeaderText="Sortable" DataField="IntegerValue"

SortExpression="IntegerValue"/>
<asp:BoundColumn HeaderText="Not Sortable" DataField="DateTimeValue" />
<asp:TemplateColumn>
<HeaderTemplate>
Click to sort -->
<asp:ImageButton id=SortButton1 runat="server"
CommandName="sort" CommandArgument="StringValue"
ImageUrl="/quickstart/aspplus/images/arrow1.gif"
/>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server"
Text='<%# DataBinder.Eval(Container, "DataItem.StringValue") %>'

ID="Label1" NAME="Label1"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>

</asp:DataGrid>

</form>

</body>
</html>
'************************

然后保存后,我再点击 网页上的[查看源代码]连接查看原代码时,却发现中文全变成了乱码,我在浏览器中右

击看编码,它指定到unicode(utf-8),但我把它设为简体中文,也还是不能正常显示。于是我用“记事本”打开

另外一些有中文字符并显示正常的源文件,却发现那些正常显示的中文却是乱码。

我再点击网页上的[运行示例]连接,程序运行后也是乱码。但我用记事本打开datagrid9.aspx显示却正常,我把

它单独复制到其他目录下,运行后也正常,看编码也是unicode(utf-8),但指定到简体中文也是乱码.于是我对原

目录下的配置文件有些疑问,不知是不是这个原因,配置文件如下:
***********************
<configuration>
<configSections>
<sectionGroup name="system.web">
<section name="sourceview"

type="System.Configuration.NameValueSectionHandler,System,Version=1.0.5000.0,Culture=neutral,Publ

icKeyToken=b77a5c561934e089" />
</sectionGroup>
</configSections>
<appSettings>
<add key="RemoteHost" value="false" />
</appSettings>
<system.web>
<!-- <identity impersonate="true" /> -->
<sourceview>
<add key="root" value="D:\Program Files\Microsoft Visual Studio .NET

2003\SDK\v1.1\QuickStart" />
</sourceview>
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8" />
</system.web>
</configuration>
*************************************
还是有其他原因,我该怎么解决这个问题呢?






...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
frieda 2004-10-17
  • 打赏
  • 举报
回复
还是不行,是不是还应该做些什么呢?
frieda 2004-10-17
  • 打赏
  • 举报
回复
我好象发现问题了,它写了一个fileEncoding="UTF-8",而我保存时编码为ansi,我重新保存为utf-8后,就显示正常了。谢谢二位指点。
happyjun2000 2004-10-17
  • 打赏
  • 举报
回复
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
这也不行?一般都是这个原因.
BearRui 2004-10-16
  • 打赏
  • 举报
回复
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>

该为下面试一下:

<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧