none
[ASP.NET] 使用 Request.Form 取得參數值,值卻是亂碼,該如何解決? RRS feed

  • 一般討論

  • 環境:xp sp3 + vs2005 + asp.net 2.0

    小弟,有與其他廠商介接網頁,由於其他廠商會導到我指定的網頁,

    並且使用 post 傳遞參數,小弟,這邊接起來卻是亂碼 (ex:request.Form["test"]),

    小弟認為是編碼的問題,於是 在 .aspx 原始碼中,加入了 CodePage="65001"

    與<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

    還有在 Web.config  中加入

    <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>

    依然沒有效果,接起來的參數依然是亂碼;詢問廠商,廠商說編碼必須是 utf-8,

    不知是小弟哪邊疏忽了,特來請教。

    • 已變更類型 阿尼Moderator 2011年1月26日 上午 01:40 誤會一場
    2011年1月24日 上午 06:11

所有回覆

  • you cannot control the user is entering which codepage for his string input. You could visit the following link to see more detail on how t detect the codepage and change it in Request or in Session.

    詢問 UTF-8 頁面 request.QueryString 從 URL get 中文亂碼問題
    http://www.blueshop.com.tw/board/show.asp?subcde=BRD201008311046527AC

    And more detail about Globalization,
    http://support.microsoft.com/kb/893663


    大家一齊探討、學習和研究,謝謝!
    Microsoft MVP, Microsoft Community Star(TW & HK), MCT,
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD
    2011年1月24日 上午 06:31
  • 搞不好是廠商弄錯了,改成big5試看看
    2011年1月24日 上午 06:31
    版主
  • 小弟不是使用 網址列 Get 參數的方式取得,還是一律 post 方式傳遞指定參數導到我的頁面。(ex:request.Form["test"].ToString().Trim();)
    2011年1月24日 上午 06:40
  • hi,

    1. 自己寫一支post的測試頁來測試,您接到自己測試頁post過來的,是不是亂碼
    2. 請廠商寫一支sample,請他證明自己接post的資料是正確的

    接著,自己比對一下,兩者的差別。


    常用資源參考:
    小弟的blog: In 91
    2011年1月24日 上午 08:02
    版主
  • 如果資料有Encode處理過, 需要呼叫Decode還原資料
    2011年1月24日 上午 08:06
  • Hi,

    請問您接收參數的那支程式aspx及aspx.vb(cs)的編碼是ANSI,還是UTF-8。

    我在web.config加上<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>後,
    aspx頁面上就不會再加<meta http-equiv="content-type" content="text/html; charset=UTF-8" />及CodePage="65001",
    不過我的aspx及aspx.vb(cs)編碼需為UTF-8。

    if (me.today == me.yesterday) me.tomorrow = null;
    2011年1月25日 上午 12:46
  • 網頁 都為 UTF-8 編碼

    若照各位大大的分享,我想我的程式應該就沒問題了,也自己寫一個  post 網頁 測試,中文字顯示是正常的,

    因為資料是廠商撈他們的資料庫然後 post 過來我的網頁,是否有可能是資料庫資料表的編碼?

    2011年1月25日 上午 10:09
  • 請對方先貼單字過來,然後比對是否正確。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年1月25日 下午 02:10
  • 感謝各位大德的提供的意見,經過與廠商的確認,確實是他們那邊的問題,至於是甚麼問題造成的,就不再追溯了,

    在這邊感受到大家的溫暖,在 code 海 嫩咖的我,總是不至於那麼快沉下去。

    2011年1月26日 上午 01:34