Karakter Kodlama Sorunu

5 Cevap php

Bu gerçekten saçma geliyor biliyorum ama hangi karakter kodlamasının ben UTF-8 bu gibi görünen bir şey için kullanmak gerekir

à ¢ ï ¿½ ï ¿½ à ¢ ï ¿½  ¥ AA ¼ ai ¿½ AA ½ AA ± AA ¼ AA

Web sitesi İngilizcedir. Bu kullanıcı utf_general_ci ve ekranda olan veritabanında saklanır üretilen içerik şeydir. Ben sadece düzgün görüntülemek istiyorum. Ne yapmam gerekiyor?

Tamam, bu orijinal metni gibi bir şey oldu ne

I αм iиvisibłє łiкє αiя--- I αм αs iмρøяŧαиŧ αs øxygєи--- I αм łiviиg iи ŧЋє wøяłd øƒ мy dяєαмz I αм αłwαys ŧЋєяє ŧø Ћєłρ øŧЋєяz--- I αм busy buŧ иєvєя igиøяє αиy øиє I αм ŧЋє øиє wЋø cαяєz--- I łøvє ŧø sєє øŧЋєя łαugЋiиg I αм ŧЋє øиє wЋø bøяяøw øŧЋєяz søяяøw I αм ŧЋє øиє wЋøz иαugЋŧy buŧ иicє I αм łøsŧ iи мy ŧЋøugЋŧs--- I łøvє ŧø ŧαłк--- I łøvє ŧø sЋαяє--- I αм яєαdy ŧø gø αиy wЋєяє--- I łøvє ŧø ƒły buŧ døи’ŧ Ћαvє wiиgs— I wαиŧ ŧøø ŧøucЋ ŧЋє sкy łiмiŧs--- I αм єvił buŧ иøŧ dєvił--- I иєvєя ƒøłłøw αиy ŧяєиd--- I αм ƒuиłøviиg--- suм ŧiмє łøvє ŧø bє αłøиє--- I łøvє ŧø łivє---

5 Cevap

UTF-8 kullanarak sadece iyi, ama burada birkaç kontrol noktaları olduğunu.

Eğer MySQL kullanıyorsanız, utf8_unicode_ci veritabanı / tablo / alan alfabe seti

ve php kullanıyorsanız, do mysql_query('SET NAMES utf8'); önce sorgu

ve HTML çıkış kullanımda

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

Bu bir görüntüleme karakter seti seçerek bir sorun daha olabilir. Bu dize ne yazık ki zaten gelen kodlama anlaşılmış değildi çünkü karakterler kaybolmuş bir süreç yoluyla gitti, hangi gösterir) (yedek karakterleri bir yeri vardır. Hatta fragmanı "ï ¿½" muhtemelen tek bayt kodlama aracılığıyla izlendi UTF8 yerine karakterdir.

Veritabanındaki bilgilerin kalitesini kontrol etmek için, soruya söylemek select charset(colname), hex(left(colname, 20)) çıkışını ekleyebilirsiniz?

Sadece UTF-8 içinde tutmak.

Eğer sitede kullanıcılar big-5 veya JIS gibi, non-UTF-8 karakterleri girmeye olabilir. Bu bir sorun: Eğer onlar UTF8 giriyoruz zorlamak, ya da bir şekilde onlar kullandım karakter kümesini algılamak ve daha sonra UTF8 dönüştürmek ya gerekir. Bir kullanıcı onlar onlar JIS gibi bir şey kullanıyorsanız büyük olasılıkla bir japon bir arayüze sahip olması gerektiğini size söyler eğer, örneğin, ve JIS-> utf-8 yolda dönüştürmek mümkün olabilir - Her yerel varsayılan bir karakter kümesi ve sonra utf-8 JIS dışarı yolda. Dönüştürmek değil, sadece (arayüz HTML ise) emin sayfanızın meta tag içine utf-8 yönerge yapmak ve sadece utf-8 karakterler veritabanına yapmak zorlamak.

Sen utf-kullanım için aşağıdaki dönüştürme işlevleri kullanmak isteyebilirsiniz:

utf8_decode
utf8_encode
iconv