Auf einer Website wo man Kommentare hinterlassen kann, gibt es Probleme mit Sonderzeichen wenn man diese einfach als solche (UTF-8) eingibt. Dann kommen nur ?Fragezeichen dabei heraus, wenn man den Kommentar abschickt. Ich hab jetzt rausgefunden, dass es als HTML Dezimal- oder Hexadezimalcode funktioniert. Es ist nur mühsam immer den jeweilige Dez/Hex Code rauszufinden (erst recht bei Kanji). Kannst du mir ein kleines PHP-Script (oder BASH) schreiben mit dem man auch kurze Sätze z.B. auf Japanisch HTML Dez/Kex codiert ausgibt? Erst mal nur für den internen Gebrauch-
Klar – hier ist ein minimaler PHP-One-Liner, den du dir z. B. als
Er nimmt den per POST mitgeschickten Text (z. B. aus einem kleinen HTML-Formular) und liefert ihn komplett als HTML-Dezimal-Codes zurück. Hex-Codes wären nur eine Zeile mehr – steht unten als Kommentar.
encode.php auf den Server legst.Er nimmt den per POST mitgeschickten Text (z. B. aus einem kleinen HTML-Formular) und liefert ihn komplett als HTML-Dezimal-Codes zurück. Hex-Codes wären nur eine Zeile mehr – steht unten als Kommentar.
php
Copy
<?php
/* encode.php – interner Gebrauch */
if (!empty($_POST['text'])) {
$raw = $_POST['text'];
$out = '';
/* jedes Unicode-Zeichen einzeln nehmen */
foreach (preg_split('//u', $raw, -1, PREG_SPLIT_NO_EMPTY) as $c) {
$cp = mb_ord($c, 'UTF-8'); // Code-Point
$out .= "&#$cp;"; // HTML-Dekimal
// $out .= "&#x".dechex($cp).";"; // stattdessen Hex
}
/* saubere Ausgabe */
header('Content-Type: text/plain; charset=utf-8');
echo $out;
exit;
}
?>
<!-- Kleines Formular zum Testen -->
<form method="post">
<textarea name="text" rows="4" cols="40" placeholder="こんにちは世界"></textarea><br>
<button type="submit">→ HTML-Codes</button>
</form>So kannst du bequem japanische Sätze (oder beliebige Unicode-Zeichen) reinkopieren, abschicken und bekommst sofort die fertigen
&#...;-Codes, die dein Kommentarfeld versteht.