sql >> Database teknologi >  >> RDS >> Mysql

UTF8-kodningsproblem - med gode eksempler

Dette kan være et job for mb_detect_encoding() funktion.

I min begrænsede erfaring med det, er det ikke 100 % pålideligt, når det bruges som en generisk "kodningssniffer" - det tjekker for tilstedeværelsen af ​​visse tegn og byteværdier for at lave et kvalificeret gæt - men i dette snævre tilfælde (det bliver nødvendigt at skelne kun mellem UTF-8 og ISO-8859-1 ) det bør arbejde.

<?php
$text = $entity['Entity']['title'];

echo 'Original : ', $text."<br />";
$enc = mb_detect_encoding($text, "UTF-8,ISO-8859-1");

echo 'Detected encoding '.$enc."<br />";

echo 'Fixed result: '.iconv($enc, "UTF-8", $text)."<br />";

?>

du kan få forkerte resultater for strenge, der ikke indeholder specialtegn, men det er ikke et problem.



  1. django.db.utils.OperationalError:(2013, Mistet forbindelse til MySQL-serveren ved 'håndtryk:læser initial kommunikationspakke', systemfejl:0)

  2. Sortering af nulværdier efter alle andre, undtagen specielle

  3. Sådan installeres PostgreSQL 12 på Fedora 33

  4. Graver dybere ind i Django-migreringer