PHP - Alman karakterler ile UTF8 sorunu

4 Cevap php

Sonra ben yığın taşması hatırlıyorum, bu biriyle benim fikir sonunda kulüpler.

Ben bir site, http://bridgeserver3.co.uk/disklavier/de/, dil gibi görünüyor basit bir PHP dosyasında saklanır var ..

$translations["welcome_text_3"]="Zum Lieferumfang eines jeden Disklaviers gehšren bereits zahlreiche Lieder und das Angebot lŠsst sich jederzeit erweitern. Unsere neuen Modelle warten sowohl mit akustischen als auch mit digitalen Errungenschaften auf, darunter die Wiedergabe von Audio- und MIDI-CDs sowie die revolutionŠre ãPianoSmartªÓ-Funktion fŸr die Synchronisation Ihrer Klavieraufzeichnungen mit handelsŸblichen Audio-CDs. Und wenn Sie schon eine Weile davon trŠumen, eines Tages zumindest passabel Klavier spielen zu kšnnen, hilft Ihnen die neue ãSmartKeyªÓ-Technologie beim Einstudieren Ihrer ersten StŸcke und versieht Ihr Spiel sogar mit professionellen Verzierungen.";

(Karakterler değil SO dosyada mükemmel göstermek, ama).

Bu metin bir excel elektronik tablo ve el ile oluşturulan düz bir dosyadan ihraç edildi.

Sayfa kodlamasını UTF8, ve ben ekledim:

header("Content-type: text/html; charset=UTF-8");

Ben dize dışarı echo php dosyasına, henüz Alman karakterleri kaybedersiniz.

Herkes herhangi bir ipucu verebilir misiniz?

James

4 Cevap

Ben sorunu buldum ...

Excel, Windows kodlama ile metin ihraç, bu yüzden benim yağmurluk bile TextMate doğru baktı. Ben UTF8 kodlaması ile yeniden açtığımda sorun çeviriler dosyasında görünür oldu.

Gidermek için ben UTF8 dönüştürmek için bir PC'de EditPadPro kullanılır.

Vay.

Belki sizin <head> etiketinin içinde bu eklemeyi deneyebilirsiniz?

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

Sayfa kodlamasını UTF8, ve ben ekledim:

Muhtemelen değil. Php dosya aslında utf-8 kodlaması ile kaydedilmiş olduğundan emin olun.

I use Coda but I think textmate has to offer some option like Text->Encoding->Unicode UTF-8, activate it and then your file will be encoded properly and then save it. Anyway if you are going to put some forms and you are not sure the people is using the correct encoding mode you'll have the same problem.

Bu gibi bir şey kullanabilirsiniz:

<?php

$not_utf8 = "An invalid string"; //Put here the bad text for testing
$not_utf8 = mb_convert_encoding($not_utf8, 'UTF-8', mb_detect_encoding($not_utf8));

echo htmlspecialchars($not_utf8, ENT_QUOTES, 'UTF-8'); //The output should be ok, see the source code generated and search for the correct html entities for these special chars

?>

Bu Size yardım umut!

Luis.