2010-11-14 24 views
7

Bu kodlarla dolu bir dosyam var ve onu normal karakterlere çevirmek istiyorum (tüm dosya, yani). Nasıl yapabilirim?Ã © ve diğer kodlar

Çok önceden şimdiden teşekkür ederiz.

+0

Tam olarak ne demek istiyorsun? Dosyayı bir hex editöründe açtığınızda ne görüyorsunuz? –

+0

Kötü açıklamalarım için özür dilerim. Yani, PHP'nin utf8_decode() fonksiyonu ile gerçek değeri gösterebilirim, ama tüm dosyaya değiştirmem gerekiyor. Nasıl yapılır? – Matts

cevap

16

Orijinal olarak, 8 bit kodlamayla (ör. ISO-8859-15) ve varlık kodlu olarak yorumlanmış bir UTF-8 dosyasına sahip olduğunuz anlaşılıyor. Bunu söylüyorum çünkü C3A9 dizisi oldukça makul bir UTF-8 encoding sequence gibi görünüyor.

İlk olarak bunu kod çözme işlemi yapmanız gerekecektir, daha sonra tekrar bir UTF-8 kodlamanız olacaktır. Ardından, seçtiğiniz bir kodlamaya dönüştürmek için iconv gibi bir şeyi kullanabilirsiniz.

sizin örnek üzerinden çalışmak için:

  • & # XC3; & # xA9; ilk sekizli lider 110 ikili
  • yılında bayt dizisi 0xC3A9
  • 0xC3A9 = 11000011 10101001 olarak deşifre olacak bu UTF-8 iki bayt dizisi olarak yorumlanabilir söyler. İkinci sekizli 10 ile başladığında, UTF-8 olarak yorumlayabileceğimiz bir şeye bakıyoruz. ... biz ilk sekizlisinin son 5 biti ve ikinci sekizlinin son 6 bit almak Bunu yapmak için
  • Yani, UTF8 olarak yorumlanır öyle 00011101001 = E9 = é (LATIN SMALL LETTER E WITH ACUTE)

Bunu PHP ile halletmek istediğinizden bahsediyorsunuz, bunun gibi bir şey sizin için yapabilir:

//to load from a file, use 
//$file=file_get_contents("/path/to/filename.txt"); 
//example below uses a literal string to demonstrate technique... 

$file="&Précédent is a French word"; 
$utf8=html_entity_decode($file); 
$iso8859=utf8_decode($utf8); 

//$utf8 contains "Précédent is a French word" in UTF-8 
//$iso8859 contains "Précédent is a French word" in ISO-8859 
+0

+1 harika cevap. – Sarfraz

+0

Ama tüm dosya nasıl değiştirilir? Yani, "ortak" metin ve kodlanmış dizileri olan bir dosyadır ... – Matts

+0

Bu teknik dosyanız için işe yaramazsa, dosyanızın ilgili bir örneğinin küçük bir altıgen dökümü eklemenizi öneririm. –

İlgili konular