Ich habe ein Problem hier, wo ich Perl verwende, um einige Zeichen über ein Eingabetextfeld einzugeben und in der Datenbank zu speichern. Alle Werte durchlaufen eine Funktion, um escapeHTML vor dem Speichern in der Datenbank auszuführen. Problem ist, dass diese escapeHTML-Funktion einige meiner chinesischen Zeichen in HTML-Code umwandelt, der in Beispiel 2 und 3 gezeigt wird. Ich frage mich nur, warum escapeHTML nur Auswirkungen auf einige Unicode-Zeichen und nicht alle hat ??htmlscape konvertiert einige Unicode-Zeichen
Hoffe jemand kann mir dabei helfen.
Dank
use CGI qw(escapeHTML);
$string = "泰国";
$string = escapeHTML($string);
$string2 = "مرحبا بالعالم";
$string2 = escapeHTML($string2);
example 1:
$VAR1 = 'Dump out string مرحبا بالعالم';
$VAR1 = 'Dump out after escapeHTML string مرحبا بالعالم';
Example 2:
$VAR1 = 'Dump out string 泰国';
$VAR1 = 'Dump out after escapeHTML string 泰▒›▒';
Example 3:
$VAR1 = 'Dump out string 泰国 - <font>TEST</font>';
$VAR1 = 'Dump out after escapeHTML string 泰▒›▒ - <font>TEST</font>';
Woher kommt escapeHTML? Verwenden Sie ein Modul, wahrscheinlich mit 'use Some :: Module;' an der Spitze Ihres Skripts? Die zweite Zeile hat einen Syntaxfehler: ** $ ** escapeHTML ($ string) ist nicht gültig, wahrscheinlich sollte $ entfernt werden. – Sebastian
Entschuldigung, ich habe bereits meine Frage verbessert und ja es von CGI verwenden qw (escapeHTML); Ich bin etwas neu in Perl und benutze die Syntax. Entschuldigung –
Wenn Sie Unicode-Zeichenfolgen in Ihrer Quelle verwenden möchten, müssen Sie 'utf8;' verwenden. Wenn alle Ihre Inputs/Outputs in utf8 sind, sollten Sie wahrscheinlich auch "utf8 :: all" benutzen, was alle Ihre Datei-Handles in utf8 öffnet. Andernfalls können einige utf8-Strings aus Legacy-Gründen als latin1 ausgegeben werden. – mirod