Pracuję na stronie internetowej, która używa/zapisuje znaki akcentowane w bazie danych. Mam zestaw szablonu strony tak, że config.php zmienną charset dopasowuje ustawienia, npZestaw kodów konfiguracji CodeIgniter i obsługa UTF-8
<meta charset="<?php echo $this->config->item('charset');?>">
Problem mam jest, gdy $config['charset']
jest ustawiony na UTF-8, w formie sprawdzanie poprawności kończy się niepowodzeniem i wygląda tak, jakby żadne znaki nie zostały przesłane, jeśli dołączono znak akcentowany. Tak więc, na przykład, wymagane pole zostanie odesłane, jeśli á jest zawarte w dowolnym miejscu ciągu. Ciąg minus á działa dobrze.
udało mi się uzyskać tej pracy poprzez zmianę $config['charset']
do ISO-8859-1 i przekształcania tekstu na UTF-8 przed włożeniem/po pobraniu z bazy danych z PHP utf8_encode()
i utf8_decode()
. Czy jest to najlepszy sposób, czy też brakuje mi czegoś, co jest potrzebne, aby uzyskać kodowanie UTF-8 z akcentowanymi znakami, pracując w CodeIgniter?
Wszelkie porady są mile widziane.
Upewnij się, że ustawiłeś wszędzie UTF-8. Trudno powiedzieć, co jest nie tak, ale prawdopodobnie w pewnym momencie masz inny zestaw znaków. Musi przeczytać: http://www.joelonsoftware.com/articles/Unicode.html. – Styxxy