0

次のコードで'okina文字を許可する必要があります

<?php $char = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x80-\xFF]/u', '', $char); ?>

ここで範囲がどのように機能するか、そして運がない範囲から1文字を選択する方法についての明確な説明を見つけようとしました。それ、どうやったら出来るの?

ありがとう

4

2 に答える 2

0

あなたが参照している文字はMODIFIERLETTERTURNED COMMA(U + 02BB)であり、Unicode標準では、「ハワイの正書法では「翁」(声門破裂音)として使用されている」と説明されています。それが最も正しい「オキナ」であると主張されるかもしれませんが、それは確かにその目的のために使用される唯一のキャラクターではありません。多くの場合、「翁は右一重引用符」U + 2019、左一重引用符「U + 2018」、(ASCII)アポストロフィ「U + 0027」、またはアクサングラーブ「U+0060」と表記されます。

ただし、U + 02BBを考慮すると、PHP正規表現で次のように記述できます\x{02bb}。表記の説明については、PHPで範囲[0x5E10、0x7F35]にない文字を「*」に置き換えるにはどうすればよいですか?を参照してください。

于 2012-11-15T22:35:38.003 に答える
0

正規表現は長さが 1 バイト以下の「特定の」文字のみをブロックしているため、2 バイト文字であるため、翁文字をブロックすることはできません。したがって、この正規表現を試すことをお勧めします。

<?php $char = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F]/u', '', $char); ?>

すべての文字 x80-xFF を許可して、問題が解決するかどうかを確認します。

もしそうなら、それはおそらく翁と混同している「左シングルクォーテーションマーク」(西洋文字セットのx91)です。

于 2012-11-15T21:53:05.783 に答える