請教Unicode字串格式的轉換問題 |
尚未結案
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
底下有幾個字串,我想轉成網頁的utf-8輸出,但經處理後,str1輸出結果不正常是"忘??測?",str2輸出正常"測試請款",str3輸出不正常"請?測試 "
請教有unicode轉換經驗的前輩,這問題出在哪? 謝謝 [code vb] Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Dim str1 As String = "敹??⊥葫閰?" '正常應為"忘打卡測試" Dim str2 As String = "皜祈岫隢狡" '正常應為"測試請款" Dim str3 As String = "隢?皜祈岫" '正常應為"請假測試" Dim strarry() As Byte = System.Text.Encoding.Default.GetBytes(str1) Label1.Text = Encoding.UTF8.GetString(strarry) End Sub [/code] |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
我覺得很怪,為什麼要這樣寫?
只要你的 .aspx 網頁是宣告成 utf-8 輸出就好 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 其他就照常寫 Dim str1 As String = "忘打卡測試" Label1.Text = str1 ===================引 用 pedro 文 章=================== 底下有幾個字串,我想轉成網頁的utf-8輸出,但經處理後,str1輸出結果不正常是"忘??測?",str2輸出正常"測試請款",str3輸出不正常"請?測試 " 請教有unicode轉換經驗的前輩,這問題出在哪? 謝謝 [code vb] Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Dim str1 As String = "敹??⊥葫閰?" '正常應為"忘打卡測試" Dim str2 As String = "皜祈岫隢狡" '正常應為"測試請款" Dim str3 As String = "隢?皜祈岫" '正常應為"請假測試" Dim strarry() As Byte = System.Text.Encoding.Default.GetBytes(str1) Label1.Text = Encoding.UTF8.GetString(strarry) End Sub [/code]
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
編輯記錄
sryang 重新編輯於 2013-09-08 11:44:28, 註解 無‧
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
sryang你好
謝謝你的回覆。 字串的來源是資料庫,用dim只是方便問題簡化到字串格式的轉換。 ===================引 用 sryang 文 章=================== 我覺得很怪,為什麼要這樣寫? 只要你的 .aspx 網頁是宣告成 utf-8 輸出就好 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 其他就照常寫 Dim str1 As String = "忘打卡測試" Label1.Text = str1 ===================引 用 pedro 文 章=================== 底下有幾個字串,我想轉成網頁的utf-8輸出,但經處理後,str1輸出結果不正常是"忘??測?",str2輸出正常"測試請款",str3輸出不正常"請?測試 " 請教有unicode轉換經驗的前輩,這問題出在哪? 謝謝 [code vb] Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Dim str1 As String = "敹??⊥葫閰?" '正常應為"忘打卡測試" Dim str2 As String = "皜祈岫隢狡" '正常應為"測試請款" Dim str3 As String = "隢?皜祈岫" '正常應為"請假測試" Dim strarry() As Byte = System.Text.Encoding.Default.GetBytes(str1) Label1.Text = Encoding.UTF8.GetString(strarry) End Sub [/code] |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
字串來源是資料庫也一樣,直接指定給 Label.Text 就好,ASP.Net 會幫你轉成 UTF-8
===================引 用 pedro 文 章=================== sryang你好 謝謝你的回覆。 字串的來源是資料庫,用dim只是方便問題簡化到字串格式的轉換。 ===================引 用 sryang 文 章=================== 我覺得很怪,為什麼要這樣寫? 只要你的 .aspx 網頁是宣告成 utf-8 輸出就好 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 其他就照常寫 Dim str1 As String = "忘打卡測試" Label1.Text = str1 ===================引 用 pedro 文 章=================== 底下有幾個字串,我想轉成網頁的utf-8輸出,但經處理後,str1輸出結果不正常是"忘??測?",str2輸出正常"測試請款",str3輸出不正常"請?測試 " 請教有unicode轉換經驗的前輩,這問題出在哪? 謝謝 [code vb] Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Dim str1 As String = "敹??⊥葫閰?" '正常應為"忘打卡測試" Dim str2 As String = "皜祈岫隢狡" '正常應為"測試請款" Dim str3 As String = "隢?皜祈岫" '正常應為"請假測試" Dim strarry() As Byte = System.Text.Encoding.Default.GetBytes(str1) Label1.Text = Encoding.UTF8.GetString(strarry) End Sub [/code]
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/ |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
已宣告meta字集為utf-8,字串指定給Label1.Text仍不會自動轉換格式 [code xml] <head runat="server"><br /><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><br /> <title></title> </head><br /><body><br /> <form id="form1" runat="server"><br /> </form><br /></body><br /></html><br /> [/code] [code vb] Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Dim str1 As String = "敹??⊥葫閰?" '正常應為"忘打卡測試" Dim str2 As String = "皜祈岫隢狡" '正常應為"測試請款" Dim str3 As String = "隢?皜祈岫" '正常應為"請假測試" ' Dim strarry() As Byte = System.Text.Encoding.Default.GetBytes(str1) 'Label1.Text = Encoding.UTF8.GetString(strarry) Label1.Text = str1 End Sub [/code] ===================引 用 sryang 文 章=================== 字串來源是資料庫也一樣,直接指定給 Label.Text 就好,ASP.Net 會幫你轉成 UTF-8 ===================引 用 pedro 文 章=================== sryang你好 謝謝你的回覆。 字串的來源是資料庫,用dim只是方便問題簡化到字串格式的轉換。 ===================引 用 sryang 文 章=================== 我覺得很怪,為什麼要這樣寫? 只要你的 .aspx 網頁是宣告成 utf-8 輸出就好 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 其他就照常寫 Dim str1 As String = "忘打卡測試" Label1.Text = str1 ===================引 用 pedro 文 章=================== 底下有幾個字串,我想轉成網頁的utf-8輸出,但經處理後,str1輸出結果不正常是"忘??測?",str2輸出正常"測試請款",str3輸出不正常"請?測試 " 請教有unicode轉換經驗的前輩,這問題出在哪? 謝謝 [code vb] Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Dim str1 As String = "敹??⊥葫閰?" '正常應為"忘打卡測試" Dim str2 As String = "皜祈岫隢狡" '正常應為"測試請款" Dim str3 As String = "隢?皜祈岫" '正常應為"請假測試" Dim strarry() As Byte = System.Text.Encoding.Default.GetBytes(str1) Label1.Text = Encoding.UTF8.GetString(strarry) End Sub [/code] |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
從下面你的這行就可以看出
Dim str1 As String = "敹??⊥葫閰?" 1/ 你想要在str1裡「硬塞」utf8的字串 2/ 你目前這個source code存檔時並沒有選utf8,所以等於後面才會有那些怪字。 推論: 你這樣的模擬方式與從db讀進來,然後給str1值不會一樣。一般來說,你要先把source code 存成utf8,再進一步實驗,才會把問題縮小。我大概猜得出來你db中放的是utf8的字串,是嗎? 若是,那那些值又是怎麼被寫入到db中的? 一樣是透過網頁? 或是 delphi 寫入? 原則上若你的欄位是 varchar,放的又是utf8的字串,那你就準備頭痛 (若你是mssql)。 utf8的字串應該要先設定給array接住,不該由string接住。先array再用utf8的encode來轉成str1,然後就會如sryang說的,一切都自然了 (因原則上asp net會以 response charset = utf8的情形幫你一整個轉)。
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |