2011-03-16 51 views
0

我想要一個字符串並將其存儲在MYSQL數據庫中。該字符串將是一個HTML字符串,它可以具有任何字符編碼或用任何語言編寫。在不影響字符編碼的情況下安全地將HTML存儲在數據庫中

我怎樣才能安全地保存在我的MYSQL數據庫,而不影響HTML字符串,以便我以後可以檢索它?

此外,它將存儲在字段中的數據類型爲text,並且排序規則爲latin1_swedish_ci這是否會影響它?

我目前這樣做:

htmlentities($html, ENT_QUOTES, 'UTF-8') 

但我不認爲上述將爲所有字符集。我的意思是如何影響德國或日本人物?

感謝您的任何幫助。

+0

如果存儲不是問題,您總是可以使用'base64_encode()在將它塞入數據庫之前。您不必在數據庫端使用任何Unicode,只需使用標準ASCII。 (作爲評論發表,因爲我不稱它爲好答案,不要期望它被視爲一個。) – 2011-03-16 22:33:27

+0

@GigaWatt ha:p – mway 2011-03-16 22:34:04

+0

好吧,所以它看起來使用base64並不是愚蠢的想法正如我原先的想法。我很高興我不太重視。 ;) – 2011-03-16 22:36:09

回答

2

爲什麼不把base64編碼存儲,然後解碼?

0

您可以將其存儲在BLOB字段中,MySQL永遠不會嘗試將其轉換。但這意味着您已經記住了保存字符串時使用的編碼。

另一種選擇是將字符串編碼爲base64。

0

我不認爲整理不會影響值的存儲。它只會影響你做比較(WHERE)和排序(ORDER BY)時的行爲。

恕我直言,確保您的數據不變的最安全的方法是將值存儲爲二進制。 Base64也可以工作。在任何一種情況下,當你讀回字符時,你都必須知道字符編碼。

0

有趣的每個人都在暗示base64,我從來沒有想過這樣做。我知道很多使用utf-8字符編碼的CMS數據庫。這將支持你的德國和日本人物。 HTML不應該受到影響,並且只要HTML字符集也是utf-8 charset = utf-8

+0

IMO的主要想法是儘可能不影響他現有的設置,而不會導致主要的代碼/性能問題......他可能無法控制整理,或者可能因某種隨機原因而需要拉丁文1。 :) – mway 2011-03-16 23:28:10

相關問題