簡體   English   中英

使用PHP在MySQL中插入UTF-8 NSString

[英]Inserting a UTF-8 NSString in MySQL with PHP

我有一個Objective-C NSString(例如,“ GabrielGarcíaMárquez”),我想通過POST請求將其傳遞給PHP,該請求將依次調用MySQL插入,以將字符串添加到utf8-bin列中。 麻煩的是,字符串在此過程中發生了一些變形,並且我已閱讀了有關該主題的所有Stack Overflow帖子,以防止出現這種情況。

POST請求(字符集為UTF-8)包含“ Gabriel Garc \\ U00eda M \\ U00e1rquez”。

如果我立即將該字符串插入utf8-bin列而不進行編碼或解碼,則MySQL中的結果為“ 4761627269656c2047617263c3ad614dc3a1727175657a”。 如果將字符串包裝在utf8_decode()中,則結果為“ Gabriel Garc”。 如果將字符串包裝在utf8_encode()中(嘿,為什么不呢?),結果與第一個字符串相同。

我缺少什么來防止此文本變成垃圾?

一些注意事項使這一切更加令人沮喪:

  • 我在插入查詢之前調用mysql_set_charset('UTF8',$ conn)。
  • 該表在utf8_bin中進行整理,列在utf8_bin中。

糟糕...這是phpMyAdmin錯誤。 令人驚訝的是,在不同的環境中,“ 4761627269656c2047617263c3ad614dc3a1727175657a”是正確的-例如在MySQL Workbench中,它可以清晰地打印。 我只花了兩天時間就知道了...

暫無
暫無

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

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