確かに
$string2 = preg_replace('/\xad+/', '', $string2);
はUTF-8の「業」にマッチして破壊するようです。
このコードは trunk にも残ってますね。
どうしたものか・・・
tenpura
うーむ、今回は再現しませんでした。
再現状況がはっきりするまでスルーでいいんじゃないでしょうか。
参考までに、kses.phpの開発元には、以下のような記述があります。
- For some reason, the Opera developers decided to make chr(173) a
whitespace
character in URL protocols, both when it occurs raw and in an
entity. kses
now handles this.
てことは Opera で日本語ドメインの URL 開けないってことなのか?
tenpura
2008/2/4 Takayuki Miyoshi <takayu...@gmail.com>:
> 確かにそのとおりで、kses フィルタで \xad 除去をやる必然性もないように思いますし、\xad 除去を除去しても実害はなさそうですね。
>
> ただ、\xad 除去のコメントアウトを WordPress
> 日本語版に取り込む、というのはあまり適切な対応とも思えないので(日本語に限った話じゃないですから)、やるなら筋どおり、本家のコードに取り込んでもらうよう働きかけるべきだろうと思います。
>
> で、そうはいっても理由があって入れられていたはずの \xad
> 除去を止める、となるとそれなりに理由付けが必要ですし、うまい話の持って行き方を考えておかないと、あっさりスルーされるかも知れません。
>
> 調べることも多いですし、僕としてはこの件少し時間をかけて考えてみたいと思ってます。
>
> 本家 Trac にバグとして報告して修正してもらう、という方向で、いかがでしょうか?
>
> 肝心の kses での \xad 除去について直接関係する情報がまだ見つかっていません。
kses の作者に直接問い合わせるのがてっとり早いのではないでしょうか。
> ソフトハイフンと単独の \xad 以外にはマッチしないようにするのが一番妥当な対処かと、
> 僕は今のところそのように考えています。
そうですね。
そしてもしこれが日本語のみの問題でありかつ可能ならプラグインでの対応でも
良い気がします。
tenpura
----- Original Message -----
From: "Takayuki Miyoshi" <takayu...@gmail.com>
To: <wp-j...@googlegroups.com>
> 肝心の kses での \xad 除去について直接関係する情報がまだ見つかっていません。
kses の作者に直接問い合わせるのがてっとり早いのではないでしょうか。
そしてもしこれが日本語のみの問題でありかつ可能ならプラグインでの対応でも
良い気がします。
英語でも問題が起るんですね。
これは直されるべきでしょう。
ところで、Yurikoさんも同じ問題に悩まされたようです。
http://www.yuriko.net/arc/2008/02/04a
# Miyoshiさんのチケットの件でコメントしたんですが、なぜか反映さない。
# スパム扱いされたのかしらんorz
2008/2/19 Takayuki Miyoshi <takayu...@gmail.com>:
> 遅くなりました。
>
> この問題への直接の対処にはなってないのですが、kses のコードを見ていたらもっと根本的な問題を見つけたのでそれのパッチを書いて送っています。
>
> http://trac.wordpress.org/ticket/5917
>
> bad protocol のチェック(\xad除去もその中で行っています)がすべての属性値に適用されていたので、それを URI
> タイプの属性に限定するようにするものです。
>
> これの適用により、<img alt=""> に「業務」と書いても通るようになります。
>
> 取り込んでくれるかどうか微妙ですが、ダメならまたその時考えるということで。
>
> miyoshi
>