台灣最大程式設計社群網站
線上人數
1964
 
會員總數:246318
討論主題:189850
歡迎您免費加入會員
討論區列表 >> ASP >> asp匯出excel的簡體中文是亂碼
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
asp匯出excel的簡體中文是亂碼
價值 : 20 QP  點閱數:1978 回應數:10
樓主

Joey
門外漢
0 4
54 7
發送站內信

在001.asp按下「匯出」按鈕後,會開啟001_xls.asp

<a href="001_xls.asp>
<input type="button" value="匯出" name="exp_b1">

<script language="VBScript">
Sub exp_b1_onclick()
window.location = "001_xls.asp"
end sub
</script>


下面這段是001_xls.asp的程式碼,但從資料庫取出的簡體中文會出現亂碼,請問可如何解決?
謝謝!

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<meta http-equiv="Content-Language" content="zh-tw">
<meta name="VI60_defaultClientScript" content="VBScript">
<title></title>
</head>
<body>

<%
Response.ContentType="application/vnd.ms-excel"
Response.Addheader "content-disposition","attachment; filename=匯出資料.xls"
%>

後半段程式碼就是從資料庫抓所需要的數據...

搜尋相關Tags的文章: [ 匯出excel ] , [ 簡體中文 ] , [ 亂碼 ] ,
本篇文章發表於2014-05-12 17:10
1樓
回應

香帥
檢舉此回應
charset=big5 當然會與簡體中文相衝,請改為適當簡體中文編碼,或用簡轉繁軟體,預先轉換繁體big5
本篇文章回覆於2014-05-12 17:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Joey
檢舉此回應
香帥大大,

我把這兩行改了
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-CN">

但結果還是相同,例如「浦东机场」,匯出excel後就變成「浦?机?」

因為資料量很多,無法先將資料都轉成繁體,請問是否還有其他方式呢?
謝謝!
本篇文章回覆於2014-05-13 09:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
要先確定你的資料編碼
是gb還是utf-8,這兩種都能儲存簡體中文
本篇文章回覆於2014-05-13 09:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Joey
檢舉此回應
我的資料編碼是utf-8,但如果把程式碼改成:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

就無法執行??
本篇文章回覆於2014-05-13 11:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
話說既然有這行
Response.ContentType="application/vnd.ms-excel"
上面那些HTML應該就不需要了吧

編碼是utf-8不應該會有繁體OK簡體不OK的情況啊
本篇文章回覆於2014-05-13 14:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

四百龍銀
檢舉此回應
確認一下SourceData
是var
還是Nvar
本篇文章回覆於2014-05-14 13:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

Joey
檢舉此回應
回應5樓大大,

這三行HTML拿掉了,結果相同。
本篇文章回覆於2014-05-14 16:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Joey
檢舉此回應
回覆6樓大大,

資料型態都是nvarchar
本篇文章回覆於2014-05-14 16:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

薰雨
檢舉此回應
現在回 似乎有點慢 你在最上方加二句

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%session.codepage = 65001%>

PS 一定要是網頁的 最上面 第一行,就算用 include 也是要在第一行

65001、936、950 三個號碼交換改 再 匯出 試看看。65001 代表 utf8、936代表簡體字、950 是 big5 繁體

他還要配合下面二段
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Language" content="zh-tw">

這二段要和上面二段做互相的對應,例如 你用 65001 那就要用 charset=UTF-8" 及 content="zh-tw"
就是UTF8 對應 UTF8 、 簡體對應簡體 、BIG5 對應BIG5

祝好運
本篇文章回覆於2014-06-04 15:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

Joey
檢舉此回應
薰雨大大,

你提供的方法我試了,還是沒解決...
我已經放棄了,其實。還是謝謝你的幫忙~
本篇文章回覆於2014-06-05 09:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.