我的公司只是將許多列從varchar轉換爲nvarchar。ASP服務器端代碼如何破壞智能報價?
現在看來,當我們向屏幕呈現一個智能報價(即ALT + 0146'),然後將其發送回SQL Server 2000數據庫以進行持久化時,智能報價將被破壞爲「 - 」。
我的問題:
怎麼可能ASP服務器端代碼腐敗智能報價」?
編輯:看來,我的問題是類似this one。順便提一下,Powerpoint內容將智能報價引入了混合。不過,正如我之前所說,我正在處理一個ASP頁面,而引用的問題與PHP頁面有關。
編輯:服務器端指令CODEPAGE=65001
使頁面呈現正確,但它仍然帖子內容爲「西歐」在Windows 2000框。有誰知道爲什麼?
+1:好點。是的,我*在頭節點內部有元標記。但是,我不認爲我已經要求服務器在響應頭中顯式地發送它。是否有我應該看的配置設置? – 2010-06-21 20:54:02
如果您正在執行html方法,則不需要。雖然我認爲在IIS中有一個用於站點範圍HTTP標頭的配置選項,但我認爲除非您確定所有頁面都處理UTF-8,否則應用它不是個好主意。 – JasonTrue 2010-06-21 21:14:15
%E2%80%99,實際上是智能引擎的UTF-8。你使用參數化查詢嗎?該參數化查詢中的類型是否設置爲SQL的NVARCHAR類型?如果您沒有使用參數化查詢,您是否在SQL中使用了Unicode標記? (例如N'mytext')?最後,在閱讀表單值之前,您可能需要設置Request.CodePage = 65001。 – JasonTrue 2010-06-21 21:18:40