2013-04-04 75 views
1

我正在處理已啓動的Web項目,並注意到通過HTML編輯器生成的內容在存儲到數據庫之前使用base64編碼。我想以前的開發人員是這樣做的,以防萬一用戶編寫了一些可能對數據庫引擎未知的字符,我的意思是沒有安裝字符集的語言,但我想知道這是一種好的做法還是行爲。base64編碼HTML編輯器文本以存儲在數據庫中

這裏的問題不是如何存儲CLOB適合的罰款,但如何處理未知字符的一堆數據。

任何人都可以指出我存儲通過HTML編輯器生成的HTML文本的正確方向嗎?我真的不得不爲此煩惱,或者只是假設我的數據庫將支持任何語言字符集?

感謝

+0

爲什麼在安裝DBMS時不選擇正確的編碼?即使Unicode字符集? – 2013-04-23 17:13:11

回答

0

你需要做的就是確保HTML頁面和數據庫字符集有什麼相同或數據庫是html頁面的一個超集。

一個好的網絡程序員將確保web服務器和html內容具有相同的字符集。

Web服務器字符集設置在Web服務器的配置文件,例如Apache的,它是:

AddDefaultCharset windows-1252 

HTML頁面的charset的meta標籤定義爲:

<meta http-equiv="content-type" content="text/html; charset=windows-1252"/> 

然後確保數據庫支持相同的字符集或是超集。如果所有這些都很好,那麼你就不需要將字符串轉換爲base64。

即使字符集不對,很有可能是不必要的轉換爲base64。

瀏覽器和網絡服務器根據字符集轉換字符。因此,例如,基本符號是utf8中的1個字符,在windows-1252中它變爲6個字符:「&#8730」

我可以給出的最佳建議是檢查db,web服務器和html頁面中的charsets 。並使用html擴展字符進行測試。

相關問題