台灣最大程式設計社群網站
線上人數
1112
 
會員總數:246044
討論主題:189631
歡迎您免費加入會員
討論區列表 >> AJAX / JSON / jQuery >> AJAX 文字UTF-8編碼
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
AJAX 文字UTF-8編碼
價值 : 30 QP  點閱數:3165 回應數:13
樓主

giu
門外漢
0 173
3102 462
發送站內信

捐贈 VP 給 giu
高手們~~
我發現ajax在傳輸中文時是使用responseText接受,都會把文字編碼成UTF-8
,請問有什麼方式可以不要讓它UTF-8編碼,而是用一般的ANSI編碼就可~~
感激不盡~
><

搜尋相關Tags的文章: [ AJAX ] ,
本篇文章發表於2007-02-06 15:53
1樓
回應

阿毛
捐贈 VP 給 阿毛 檢舉此回應
應該要看你送出值的那支程式的編碼而定...
那支程式編碼若是Big5..傳回值應該就會是big5
我是用PHP寫的..自已本身沒遇到您說的問題
本篇文章回覆於2007-02-06 16:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

giu
捐贈 VP 給 giu 檢舉此回應
阿毛你好~~中文一般是沒問題~~
但你有試過用UTF-8碼輸入嗎像是"♥"這類~~
一樣可以正常顯示嗎?


本篇文章回覆於2007-02-06 16:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

阿毛
捐贈 VP 給 阿毛 檢舉此回應
嗯..這我倒是沒試過..但是若您說了那是UTF-8碼的文字..
要怎麼奢求在Big5(ANSI)中能正常顯示呢?
除非在背後的程式有去做轉碼的動作...

例如你要做的事是去資料庫裡面抓一筆資料讓responseText來接
如果您資料庫裡的資料原本就已經是以UTF-8的方式存了..那您取出來的資料就是UTF-8
如果您資料庫裡的資料是以Big5存..而取出來的那支程式的文字編碼是UTF-8..您抓到responseText就會是亂碼..
這種情況下您必須在那支程式中做轉碼的動作...(如果是PHP的話google大神可以找到相對應的程式)
但是如果您存在資料庫裡的值是Big5沒有的字..像是其它國家的語言..如日文等..
那您就算轉出來也會顯示不出來
本篇文章回覆於2007-02-06 16:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

giu
捐贈 VP 給 giu 檢舉此回應
我的做法是這樣~~

使用一個簡易的表單輸入文字~~然後這文字會存成文字檔~(使用PHP)
而這文字檔內容有我剛輸入的文字~
重點是,這文字檔就會自動轉成UTF-8檔,而不是一般的BIG5(ANSI)檔
除非我使用 iconv來轉碼成big5檔,但如果這樣做的話,我剛跟你說的♥這一類碼將無法顯示~

謝謝阿毛熱心的討論~
本篇文章回覆於2007-02-06 17:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

giu
捐贈 VP 給 giu 檢舉此回應
補充~~~像存檔之後~~&#nnnnn 這一類編碼無法接收~
該如何是好><~~~苦腦ㄚ
本篇文章回覆於2007-02-06 17:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

阿毛
捐贈 VP 給 阿毛 檢舉此回應
那你要不要檢查看看您的表單是不是不小心存成UTF-8格式了?
例如您放php的主機上apache預設編碼是UTF-8?
或是您的檔案是用UTF-8的編輯器編輯?

如果是1.解決方式就是在<head></head>裡加上
<meta http-equiv="Content-Type" content="text/html; charset=big5" />

如果是2.
用可以轉碼的編輯器另存成ANSI(例如Notepad++或Dreamwaver當然nodepad也行)

最安全的方法..就是兩個都做....
如果您是用Dreamwaver來寫網頁的話..更簡單..
按下Ctrl-J選 Title/ Encoding然後在Encoding的地方選Big5
一次以上兩個動作都幫您做進去

您再試看看吧...存成big5應該是最不會有問題的吧..XD
像我做的專案..都要求要UTF-8..遇到的問題才多呢...QQ
本篇文章回覆於2007-02-06 17:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

giu
捐贈 VP 給 giu 檢舉此回應
我試用過你的方式~~都沒有不小心存成UTF-8格式
一切正常~~
但就是會轉成UTF-8格式
ㄝ使用ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=BIG5')
預設為big5
但就是無法正常顯示♥這一類碼
譬如我輸入"我是大頭娃♥你好嗎"
文字檔內只會顯示"我是大頭娃",而後面的字全不見,就是說有關♥這一類字後面都無法正常接受到文字檔裡面
頭快爆了~~~orz
本篇文章回覆於2007-02-06 18:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

giu
捐贈 VP 給 giu 檢舉此回應
看來可能沒辦法解決了~~~~
好吧~~~~簡單的說~就是為何ajax無法傳輸 &#nnnnn 這一類編碼
有什麼方式可以讓他接收到呢
本篇文章回覆於2007-02-07 14:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

好手
捐贈 VP 給 好手 檢舉此回應
試試看把傳回來的字串用JavaScrtip的decodeURIComponent()解碼。
本篇文章回覆於2007-02-08 00:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

giu
捐贈 VP 給 giu 檢舉此回應
decodeURIComponent()是js的語法吧~~

這我試過不能用ㄛ~~~~~
沒法子了~
本篇文章回覆於2007-02-08 12:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

giu
捐贈 VP 給 giu 檢舉此回應
好!!!這問題我外包~~~看能解決
有能力的請留言!
本篇文章回覆於2007-02-08 12:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

好手
捐贈 VP 給 好手 檢舉此回應
一樣啊!用JavaScript轉換回來就行了
本篇文章回覆於2007-02-08 16:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

giu
捐贈 VP 給 giu 檢舉此回應
是這樣的~~~~

我轉換的同時是使用ajax叫出php檔的網頁~
所以不能用js解碼
本篇文章回覆於2007-02-08 17:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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