2015-04-27 92 views
0

我有一個字符串,將包含特殊字符。在數據庫中存儲特殊字符的最佳方式是什麼?

for example 
EC-1CF08540B7799143A 

每當我試圖存儲它到數據庫,將其保存爲

EC%2d1CF08540B7799143A 

什麼將是存儲與特殊字符的字符串在mySQL和使用PHP檢索原始形式的最佳方式是什麼?

+0

使用utf8編碼來存儲這些值。 – Saty

+0

什麼編碼將連字符轉換爲%2d? – Devon

+0

如果你有你的答案,那麼請標記爲完整的問題。 –

回答

-1

使用

<?php 
$sting = $_REQUEST['string']; 
$new_string = str_replace("%2d", "-", $string); 
?> 

現在保存這個$ new_sting到數據庫中。

+0

你可能想要'$ string'作爲第一個變量,'$ sting'聽起來很好吃。 – briosheje

+1

這假設唯一需要轉換的字符是連字符,我甚至不會將其視爲特殊字符。如果你開始手動轉換編碼錯誤,那麼你正在走向一個(編程)痛苦的世界。 –

1

檢查數據庫正在使用的編碼,然後確保HTML文件中的meta標記也使用相同的編碼類型。

要找出你的表的編碼,使用

SHOW CREATE TABLE mytable; 

這將輸出的創建語句表,包括編碼(CHARSET)。

在HTML的頭,你應該有一個線,如

<meta charset="UTF-8"> 

確保您的SQL輸出匹配的字符集本,反之亦然。

理想情況下,他們都將使用UTF-8。

0

將列整理設置爲「urf_general_ci」到該特定欄並嘗試。

相關問題