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

Премахване на символа за символи в Unicode

Толкова много неща могат да се объркат тук, тъй като базата данни, изпращането на формуляри и низовите литерали на изходния код са замесени. Предполагам, че искате да използвате UTF-8, защото с всяко друго типично кодиране (CP1252, Latin1) ще бъдете прецакани, когато искате да използвате json_ или приемете повече от ~200 различни знака.

Първото нещо, което трябва да направите, е премахване всякакъв вид код за преобразуване и т.н., който е написан с намерението да се опита да коригира проблеми с кодирането. Като например utf8_encode , htmlentitites , *_replace .. както и да е.

Кодиране на източника.

$str = "· Close up the server";

Когато пишете по-горе, изходният файл на PHP трябва да бъде физически кодиран в UTF-8. Ако използвате Windows, трябва изрично да направите или конфигурирате това. UTF-8 не се случва магически в Windows.

Изпращане на формуляр

Когато потребителят подаде формуляр, полезният товар ще бъде в кодирането, което сте декларирали за страницата. Можете да го декларирате така:

header("Content-Type: text/html; charset=utf-8");

Но всеки може действително да изпрати произволни байтове на вашия сървър, така че трябва да потвърдите, че входът е в UTF-8, преди да продължите. mb_check_encoding е добре.

База данни

Тъй като в този момент вашите данни идват като UTF-8, вашите входни низове са в UTF-8. Трябва да посочите това, след като се свържете с базата данни, като посочите кодиране на връзката.

mysql_set_charset("utf8"); //After making the connection, and before any queries
//or $mysqli->set_charset( "utf8");

Това кара базата данни да чете вашия вход в UTF-8 и да кодира изхода си в UTF-8. Също така бихте искали да настроите своите колони/таблици/бази данни на UTF-8.

Unicode escape последователности \uxxxx или \uhhhh\ullll или \Uxxxxxxxx не се поддържат в PHP.



  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

  2. да конвертирате mysql timestamp в действителна дата и час?

  3. Кога да използвате mysql_real_escape_string()

  4. Импортирайте множество CSV файлове в mysql

  5. Постоянство на PHP MySQL връзката