簡體   English   中英

在MySQL中存儲特殊字符(Android,PHP也涉及)

[英]Storing Special Characters in MySQL (Android, PHP involved too)

好的,我正在嘗試將數據存儲在Android應用程序的MySQL數據庫中。 我使用PHP作為介於兩者之間。

我提交給數據庫的是這個(例如):Sakè

存儲在MySQL中的是:Sakè

當我在Android中打印出該行時,它知道要轉換回:Sakè

問題是,當我做某些選擇語句時,是的,它基本上不會像它應該的那樣工作。 有什么方法可以保持這種一致性嗎?

只是MySQL中的一個注釋:我使用utf8_general_ci

您需要為PHP腳本強制實施數據庫連接的正確字符。 最簡單的方法是執行此查詢:

SET NAMES 'utf8';

只需一次,最好在你connect() 如果您使用Zend Framework,只需添加:

resources.db.params.charset  = UTF8

到您的application.ini。 對於mysqli,請參閱set_charset() 如果您使用其他任何內容,請檢查文檔中的類似內容。 如果沒有,那么SET NAMES技巧將永遠有效。

但是一個重要的注意事項 - 根據您將數據放入數據庫的方式,您的數據庫內容很可能需要修復,因為它在INSERT期間被破壞的字符集損壞。 因此,即使你現在做了SET NAMES ,你很可能仍然看到錯誤的數據。 但具有諷刺意味的是,好的 - 你現在表現得很好,但數據本身就被打破了。 您現在需要修復數據(只需重新插入)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM