スマート引用符は、通常の直線引用符 (' と ") の代わりに使用される活字記号です。ただし、ソフトウェア アプリケーションでは、さまざまな種類のスマート クオート間の変換に苦労することがよくあります。
スマート クォートの変換の難しさは、さまざまなオペレーティング システムやソフトウェア プログラムが独自の標準を採用しているため、エンコーディングや文字が多様であることが原因で発生します。たとえば、あるシステムでは Unicode を使用し、別のシステムでは Windows コードページ 1252 を使用する場合があります。
この課題に対処するには、PHP の包括的なスマート クォート変換関数では、関連するさまざまなエンコーディングと文字を完全に理解する必要があり、Unicode で定義されているものを含むスマート クォートのすべてのバリエーションを処理できる必要があります。 Windows コードページ 1252 およびその他のレガシー エンコーディング。
次の最適化された PHP 実装は、すべての種類のスマート クオートを変換します。通常の引用符へ:
function convert_smart_quotes($string)
{
// Create a map of smart quote characters to their respective Unicode representations
$smart_quotes = array(
"\xC2\xAB" => '"', // « (U 00AB)
"\xC2\xBB" => '"', // » (U 00BB)
"\xE2\x80\x98" => "'", // ‘ (U 2018)
"\xE2\x80\x99" => "'", // ’ (U 2019)
"\xE2\x80\x9A" => "'", // ‚ (U 201A)
"\xE2\x80\x9B" => "'", // ‛ (U 201B)
"\xE2\x80\x9C" => '"', // “ (U 201C)
"\xE2\x80\x9D" => '"', // ” (U 201D)
"\xE2\x80\x9E" => '"', // „ (U 201E)
"\xE2\x80\x9F" => '"', // ‟ (U 201F)
"\xE2\x80\xB9" => "'", // ‹ (U 2039)
"\xE2\x80\xBA" => "'", // › (U 203A)
);
// Strtr function can directly replace the smart quote characters with their Unicode counterparts
$converted_string = strtr($string, $smart_quotes);
// Return the converted string
return $converted_string;
}
この関数は、Unicode、Windows コードページ 1252、従来のエンコーディングにあるものを含む、幅広いスマート クオートのバリエーションをカバーします。 strtr を使用すると、スマート クオートのすべてのインスタンスが対応する Unicode 表現に置き換えられ、一貫性のある標準化されたテキストが得られます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3