Filip dediği gibi, kodlama bir dosyanın içsel bir nitelik değildir; Bu örtülü bulunuyor. Bu ne bir dosyayı şifreleyen yorumlanmalıdır olduğunu bilmedikçe, bunu belirlemek için bir yol var demektir. Yapabileceğiniz en iyi, bir tahmin yapmaktır. Bu Defteri gibi programlar + + ne tahminen olduğunu. Gönderdiğiniz gerçek veriler, birçok farklı kodlamalar yorumlanabilir bu yana, sadece en sevdiği aday seçer. Notepad + + için bu diğer programlar başka bir şey varsayılan olabilir iken, (ki kendisi oldukça yanlış sınıflandırma) ANSI gibi görünüyor.
Eğer bir HTTP başlığında charset belirtmek zorunda nedeni dosyanın kendisi bu bilgileri içermediği tam çünkü, bu yüzden tarayıcı bu konuda bilgilendirilmesi gerekmektedir. Eğer diske dosyayı kaydettikten sonra, bu bilgiler dolayısıyla kullanılamaz.
Size hizmet için gidiyoruz dosya bir XML belge ise, gerçek belge içinde kodlama bilgi koyma seçeneği var. Dosya diske kaydedilir sonra korunur bu şekilde. Örn. Eğer utf-8 kullanıyorsanız, belgenizin üstünde bu koymak gerekir:
<?xml version="1.0" encoding="utf-8" ?>
O ayrı genelinde charset hakkında meta-bilgi almak notu, ayrıca hizmet veren veri aslında utf-8 kodlanmış olduğundan emin olmak gerekir. Bu kadar aynı senaryo: Eğer veri işlevi bulunduğunuz kodlayan dolaylı bilmek gerekir utf8_encode
açıkça utf-8 içine iso-8859-1 dönüştürmek içindir (adı rağmen) olduğunu. Zaten utf-8 kodlanmış verileri bunu kullanmak eğer Böylece, bozuk verilerin sonucu ile, çift-kodlanmış alırsınız.
Charsets kendi içinde karmaşık değildir. Sorun olduğunu size karışıklık düz bir şeyler olacak tutmak konusunda dikkatli değilseniz. Eğer bir dize var zaman, sen onu bir dize değil Aksi halde şifreleyen biliyor kesinlikle emin olmalıdır - bu sadece ikili veri bir blob bulunuyor.