那个部分出现乱码:
HttpUtility.UrlEncode(string)
url传递中文的解决方案
3种方法:
1.设置web.config文件。(我不喜欢设置成这样)
<system.web>
......
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
......
</system.web>
2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
string Name = "中文参数";
Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));
>> 进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name)); 3.如果是从 .HTML 文件向 .Aspx 文件进行传递中文参数的话(即不从后台用 Redirect()方法进行 Url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
<script language="JavaScript">
function GoUrl()
{
var Name = "中文参数";
location.href = "B.aspx?Name="+escape(Name);
}
</script>
<body onclick="GoUrl()">
>> 进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name)); 一般来说。设置web.config文件就可以了。但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。
HttpUtility.UrlEncode(string)
url传递中文的解决方案
3种方法:
1.设置web.config文件。(我不喜欢设置成这样)
<system.web>
......
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
......
</system.web>
2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
string Name = "中文参数";
Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name));
>> 进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name)); 3.如果是从 .HTML 文件向 .Aspx 文件进行传递中文参数的话(即不从后台用 Redirect()方法进行 Url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。
>> 进行传递
<script language="JavaScript">
function GoUrl()
{
var Name = "中文参数";
location.href = "B.aspx?Name="+escape(Name);
}
</script>
<body onclick="GoUrl()">
>> 进行接收
string Name = Request.QueryString["Name"];
Response.Write(Server.UrlDecode(Name)); 一般来说。设置web.config文件就可以了。但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件好象无效。
二楼总结的很好。
估计你该config就可以解决了。
帮帮忙啊,没有人这样用过么?
难道没有人碰到过这样的问题么?
难道没有人碰到过这样的问题么?
难道没有人碰到过这样的问题么?
http://www.lionsky.net/MyWebsite/article/list.aspx?id=428
我在DATAGRID中有一个LINKBUTTON,用上述方法导入EXCEL中,执行时报错:类型“DataGridLinkButton”的控件“DataGrid1__ctl3__ctl0”必须放在具有 runat=server 的窗体标记内。如果没有LINKBUTTON则可以,但是我需要这个LINKBUTTON,怎么解决啊!!!!如有人回答,我另开贴给分啊!!!!!!!!!!!!!!
Response.Charset=""
i have the same method with you ,but i don't have problem
我在DATAGRID中有一个LINKBUTTON,用上述方法导入EXCEL中,执行时报错:类型“DataGridLinkButton”的控件“DataGrid1__ctl3__ctl0”必须放在具有 runat=server 的窗体标记内。如果没有LINKBUTTON则可以,但是我需要这个LINKBUTTON,怎么解决啊!!!!如有人回答,我另开贴给分啊!!!!!!!!!!!!!!
改web.config也没有用
Dim objExcel As New OWC.Spreadsheet()
Dim myRow As DataRow
Dim myColumn As New DataColumn()
Dim RowCount As Object
Dim ColumnCount As Object 'Add the column headers to the excel sheet'
For Each myColumn In myTable.Columns
ColumnCount += 1
objExcel.ActiveSheet.Cells(1, ColumnCount) = myColumn.ColumnName
Next ColumnCount = 0
RowCount = 0
Dim strCell As String
Dim strCellValue As String 'Add the data to the excel sheet'
For Each myColumn In myTable.Columns
ColumnCount += 1
RowCount = 1
For Each myRow In myTable.Rows
RowCount += 1
Try
strCell = objExcel.ActiveSheet.Cells(RowCount, ColumnCount).Address()
Select Case myRow(myColumn).GetType().FullName
Case "System.DBNull"
strCellValue = ""
Case "System.String"
strCellValue = CStr(myRow(myColumn)).Replace(Chr(13) + Chr(10), ".").ToString()
Case "System.DateTime"
strCellValue = Format(CStr(myRow(myColumn)).ToString(), "yyyy/MM/dd")
Case Else
strCellValue = CStr(myRow(myColumn))
End Select
With objExcel.Range(strCell)
.Value = strCellValue
.Font.Size = 9
.Font.Bold = False
End With
Catch
Alert("failed", Me)
End Try
Next
NextobjExcel.ActiveSheet.Export(FileAndPath, OWC.SheetExportActionEnum.ssExportActionNone)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Runtime.InteropServices.COMException: HRESULT 中的异常:0xE004002A。
objExcel.ActiveSheet.Export(FileAndPath, OWC.SheetExportActionEnum.ssExportActionNone)
原因在于FileAndPath有错,我把那个什么server.map去掉就可以了。
比如:F:\text.cls就可以了,
什么原因,dg中绝对有数据,我都dg.items.count检查过了!