Ben unicode (UTF-16) değerleri ve PHP / XML ile bir sürü sorun yaşıyorum. Ben tarayıcı XML ve çıkış doğru gliflerini unicode değerleri bir dizi okumak istiyorum. Ben UTF-8 ile denedim ve aynı sorunu olsun.
Bu benim ilk test için kullanılan basit bir çalışma örneği:
$text = "\x00\x41";
$text = mb_convert_encoding($text, "ASCII", "UTF-16");
echo $text;
Yukarıdaki kod çıktısı:
A
Ben XML şeylerden değerleri almak için çalıştığınızda, ancak durabilir.
XML:
<glyphs>
<code>0041</code>
<code>0042</code>
<code>0043</code>
<code>0044</code>
<code>0045</code>
<code>0046</code>
</glyphs>
Php Ben yukarıdaki xml her değeri okumak, çiftler ve biçime, örneğin bölünmüş \ X00 \ x41, vb
PHP:
// load xml
$xml = simplexml_load_file('encoding.xml');
if ($xml) {
// get families
foreach($xml->children() as $item) {
$pairs = str_split($item, 2);
$hex = "\x" . $pairs[0] . "\x" . $pairs[1];
// check value...
echo $hex . '<br/>';
$text = mb_convert_encoding($hex, "ASCII", "UTF-16");
echo $text;
}
}
else {
return 'The input is malformed.';
}
Tarayıcıda Çıktı:
\x00\x41
????
\x00\x42
????
\x00\x43
????
\x00\x44
????
\x00\x45
????
\x00\x46
????
Soru işaretleri A, B, C, D, E, F olmalıdır
Ben yanlış ne yapıyorum?
Teşekkürler.