encodage question en perl
Question
J'ai une question de codage et aimerait demander de l'aide. Je remarque si je choisis « UTF-8 » comme l'encodage, il y a (au moins) deux guillemets doubles "
et “
. Mais lorsque je choisis « ISO-8859-1 » comme le codage, je vois ce dernier guillemet devient ¡°
, ou parfois par exemple “
.
Quelqu'un pourrait-il s'il vous plaît expliquer pourquoi cela est le cas? Comment peut correspondre “
et le remplacer par "
en utilisant regexp en Perl?
Merci beaucoup.
La solution
ISO-8859-1 est un encodage d'un octet-par-caractère. La fantaisie des guillemets doubles Unicode ne sont pas dans le jeu de caractères ISO-8859-1. Donc ce que vous voyez est un caractère multi-octets représenté comme une séquence de ISO-8859-1 octets.
Pour faire correspondre ces choses étranges, voir l'homme perlunicode , en particulier le \ x {. ..} et des séquences d'échappement \ N {...}.
Pour répondre à votre question, essayez \ x {} 201C pour correspondre à l'Unicode GAUCHE DOUBLE GUILLEMET et \ x {} 201D pour correspondre à la droite DOUBLE GUILLEMET. Vous avez manqué ce dernier dans votre question: -).
[mise à jour]
Je aurait dû donner ma référence ... Certains gentil monsieur au Royaume-Uni a une page sur ASCII et guillemets Unicode . ASCII plain vanilla / ISO-8859-1 guillemet est simplement appelé guillemet.
Autres conseils
Peut être cette Old post
contribuera ..