Ich muss Zeichen wie U(der lateinische Kleinbuchstabe G mit Cedilla) in die entsprechenden hexadezimierten UTF8 Bytes wie 0xC4 0xA3 (oder c4a3) konvertieren. Ich weiß, dass es eine Funktion (oder eine Kombination von Funktionen) gibt, die ich verwenden kann, um dies in PHP zu erreichen, aber ich kann nicht scheinen, es richtig zu machen.Konvertiere Unicode-Hexadezimalwert in Bytes mit PHP
0
A
Antwort
1
Die Funktion in the answer you are linking to funktioniert gut, ist aber Sie müssen ein paar Dinge berücksichtigen:
- Die Funktion erwartet eine Zahl (zB
0x0123
) kein String ('U+0123'
) - Ihr Ausgang sein muss angezeigt als UTF-8
- Sie kann Notwendigkeit
mb_internal_encoding('UTF-8')
(ich habe festgestellt, dass einige Systeme eine falsche Standard haben) zu nennen
Wie auch immer, habe ich eine kleine Variation geschrieben, die einen Unicode-Codepunkt für den Fall übernimmt, dass genau das, was Sie brauchen:
<?php
header('Content-Type: text/plain; charset=utf-8');
mb_internal_encoding('UTF-8');
function unicode_code_point_to_char($code_point) {
if(preg_match('/^U\+(\d{4,6})$/', $code_point, $matches)){
return mb_convert_encoding('&#' . hexdec($matches[0]) . ';', 'UTF-8', 'HTML-ENTITIES');
}else{
return NULL;
}
}
echo unicode_code_point_to_char('U+0123');
Update:
Ich habe gerade bemerkt habe, dass ich falsch verstanden haben Ihre Frage. Versuchen Sie folgendes:
function unicode_code_point_to_hex_string($code_point) {
if(preg_match('/^U\+(\d{4,6})$/', $code_point, $matches)){
return bin2hex(mb_convert_encoding('&#' . hexdec($matches[0]) . ';', 'UTF-8', 'HTML-ENTITIES'));
}else{
return NULL;
}
}
+0
Die zweite Funktion funktioniert wie ein Zauber, danke eine Million! – MarathonStudios
Verwandte Themen
- 1. Konvertiere Bild in Byte mit PHP
- 2. Ich konvertiere Zeichenkette in Bytes mit Binär-Reader, wie die Bytes zurück in die gleiche Zeichenfolge
- 3. Konvertiere ein Bild in Ziffern mit PHP?
- 4. PHP Fix Bild Bytes
- 5. Konvertiere reales Datum in Unix Timestamp PHP
- 6. PHP Format Bytes Übersetzung Javascript
- 7. Erlaubte Speichergröße von * Bytes erschöpft, in PHP
- 8. Manipulieren Bytes wie Java in PHP
- 9. Füllen eines Bytes [] mit mehreren Bytes [] s
- 10. Konvertiere ein Objekt in einen String in PHP
- 11. Wie konvertiere ich eine Zeichenfolge in einen Vektor von Bytes in Rost?
- 12. Durchsuchen einer Sequenz von Bytes in einer Binärdatei in PHP?
- 13. Wie konvertiere ich schnell das Größenelement von file.info() von Bytes in KB, MB, GB, etc.?
- 14. PHP Curl gibt 0 Bytes zurück
- 15. Wie konvertiere ich eine Zeichenfolge in einen Array-Namen (PHP)?
- 16. Assembly to Bytes
- 17. Wie konvertiere ich das in JavaScript von PHP?
- 18. Konvertiere utf8-Zeichen zu iso-88591 und zurück in PHP
- 19. Konvertiere RLMResults in RLMArray
- 20. Konvertiere String in Integer
- 21. Konvertiere binäre Zeichenfolge in Byte-Array
- 22. Konvertiere Byte [] in BitSet
- 23. Konvertiere einen String mit einer Zahl in wissenschaftlicher Notation in ein Doppel in PHP
- 24. konvertiere string [] in int []
- 25. Konvertiere xml_nodeset in data.frame
- 26. Konvertiere Byte [] in sbyte []
- 27. Konvertiere XmlNodeList in XmlNode []
- 28. Konvertiere System.Array in String []
- 29. Konvertiere Rune in int?
- 30. Convert Struktur in Bytes
Ich denke, es könnte einfacher sein, Sie mit dieser Funktion zu helfen, wenn Sie zumindest seinen Namen erwähnt ... –
Ich habe versucht, zu Chaos mit der hier bereitgestellten Code http://stackoverflow.com/ questions/2670039/php-utf-16-zu-utf-8hex-Konvertierung: mb_convert_encoding ('& #'. intval ($ u). ';', 'UTF-8', 'HTML-ENTITIES') ;, aber Trotz der Verwendung von bin2hex auf dem Ergebnis habe ich nicht die Bytes erhalten, die ich anstrebe – MarathonStudios