1. ホーム
  2. php

PHP で Microsoft エンコードされた引用符を置換する方法

2023-10-14 02:03:28

質問

Microsoft Wordのシングルクォーテーションとダブルクォーテーションのマーク( “ ” ‘ ’ ) を通常の引用符 (' と ") に置き換える必要があります。これは、私のアプリケーションのエンコーディングの問題によるものです。これらは HTML エンティティである必要はなく、データベース スキーマを変更することもできません。

私は2つのオプションを持っています: 正規表現または関連する配列のどちらかを使用することです。

もっと良い方法はないでしょうか?

どのように解決するのですか?

いくつかの特定の文字だけを置き換えたいことを考えると、私なら str_replace を配列で使用します。正規表現がもたらす大砲は明らかに不要です ;-)

そして、もし他の特殊文字(Microsoft Wordからのコピーペーストのようなもの...)に遭遇したら、必要なとき、あるいは識別されたときに、それらを配列に追加すればよいのです。



あなたのコメントに与えることができる最良の答えは、おそらくこのリンクです。 PHPでスマートクォートを変換する

そして、関連するコード (そのページを引用) :

function convert_smart_quotes($string) 
{ 
    $search = array(chr(145), 
                    chr(146), 
                    chr(147), 
                    chr(148), 
                    chr(151)); 

    $replace = array("'", 
                     "'", 
                     '"', 
                     '"', 
                     '-'); 

    return str_replace($search, $replace, $string); 
} 

(このパソコンにはMicrosoft Wordが入っていないので、自分でテストすることはできません)

職場で使っていたものをはっきり覚えていないのですが (私はそのような入力に対処しなければならない人ではなかったのですが) とか、でも同じようなものだったような...。