Mysql
 sql >> база данни >  >> RDS >> Mysql

Проблем с акцентите в изхода на JSON

Това всъщност няма значение. Когато json се декодира, те отново стават знаци.

Ако използвате php 5.4>=, можете да подадете JSON_UNESCAPED_UNICODE към json_encode :

json_encode( $data, JSON_UNESCAPED_UNICODE )

Но отново, екранирането на unicode работи също толкова добре и прави данните ascii безопасни.

Редактиране:

Изглежда, че вашите данни вече са били прецакани, дори преди json_encode . Изглежда сте го „кодирали двойно“ като utf-8.

Използвате ли нещо като utf8_encode ? Не е необходимо да правите нищо във вашия код, когато вмъквате във вашата база данни. Ако сте вмъкнали данните в базата данни с помощта на utf8_encode , тогава това обяснява двойното кодиране. Всичко, от което се нуждаете, е данните да са utf-8 и да имат mysql_set_charset( 'utf8' ) преди да поставите.

Интересно е да знаете, че ако вашият json има неекраниран уникод, json не може да бъде изпълнен като javascript дори ако добавите скоби, ако json съдържа U+2028 или U+2029 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво не е наред с моята SQL Fiddle заявка?

  2. Как да създам таблица на mysql с времеви печат на колона по подразбиране current_date?

  3. MySQL - Как да актуализирам десетичната колона, за да позволя повече цифри?

  4. Datetime Еквивалент на Date(Now()) за Insert

  5. Как да филтрирам (или заменя) unicode символи, които биха заели повече от 3 байта в UTF-8?