2011-03-17 72 views
0

我想在沒有任何特殊和國際字符的SQL Server 2008的列中保存一個屏幕名稱,以便我可以在URL中使用該列。SQL Server 2008中的編碼問題

你們可以請你提出一些技巧,如何將這個名字保存在沒有任何特殊或國際字符的列中。

這個的基本目的是在URL中使用這個列。

非常感謝。

+0

請解釋更多的意圖:是否有包含擴展字符的「屏幕名稱」有問題?如果是這樣,爲什麼不在輸入時刪除它們,或者通過適當的編輯控制禁止它們的使用? – wallyk 2011-03-17 16:34:36

+0

基本意圖是如果我在列中保存特殊和國際字符。如果我使用該列URL.i得到問題,如錯誤的請求,因爲我不能在URL中使用這種字符。所以,我想忽略這些字符,我想將屏幕名稱保存在單獨的列中,而不是屏幕名稱列中。 – jack 2011-03-17 16:37:57

+0

你是在談論擴展的代碼頁的東西,或只是關於逃避url編碼中的特殊字符?如果第二,那麼你可以只使用嵌套REPLACE函數服從這些規則:http://www.blooberry.com/indexdot/html/topics/urlencoding.htm – 2011-03-17 16:41:08

回答

2

您應該對存儲在數據庫中的字符串進行urlencode編碼,而不是「刪除」無效字符。

string url = "http://xyz.com/" + System.Web.HttpUtility.UrlEncode(myFieldContent); 

這將用相應的百分比編碼替換「特殊」字符。有關更多信息,請參見The RFC