質問: 私が OpenStreetMap(Leafletを用いたコーディング)で表示範囲内のツイートを検出したい - スタック・オーバーフロー に投稿したコメントに豆腐が入りました。 !ちなみに「特定経緯度から 他の方のコメントでも豆腐が入るのは時々見かけていましたが、自分のコメントで出てきたのは初めてでした。 消そうとしましたが消えなかったので、正体を確認しました。 * Unicode Character 'ZERO WIDTH NON-JOINER' (U+200C) でした。これが入らないようにしてほしいです。 よろしくお願いします。
回答: それは、サーバ側で挿入された弱い改行ヒントです。豆腐になるのは Chrome のバグです。 投稿内容がサーバから送られる時に付けられています。 一般に、複数行にわたる長い英文がブラウザ行に表示されるときには、 単語の途中で改行が入らないよう改行位置が半角スペース優先であわされますが(ソフトラップ)、 問題の見えないコードは、改行すべき部分を明確にするためにヒントとして挿入されています。 * zero-width space (U+200B /  / ゼロ幅空白) * Zero-width non-joiner (U+200C /  / ゼロ幅非接合子) ※ どちらも用途について、 RFC 2070 (日本語訳) に記載があります。 *meta.stackoverflow.com* の方でも何度か話題になっているようで、サーバ側の動きとしては「半角スペースのない文が 80 文字続くと 81 文字目に soft-wrap (`` もしくは、 `U+200BU+200C`) が挿入される」となっているようです。日本語の文には半角スペースがないものも多いですので、日本語の文字だけで構成された文が長く続けば、 ~~投稿のオーバーフローを防ぐため(面白くない)に、~~途中で見えない改行が挿入されているということです。 私は、いろいろな環境で Stack Overflow を閲覧することがありますが、 Mac OS X の Chrome だけ、この見えないスペースが空の四角文字になります。この隠れコード挿入の必要性は置いておいて、 Chrome のバグということで SE側が処理することになってしまうかもしれません。 ( 前に、 ja.SO チャットで @ento さんが話題に上げていました ) SE 側が対応しない場合、私たちでできるのは、文章の途中でこまめに半角スペースを入れておくことです。 参考: * meta.SO: Post Overflow * meta.SO: Occasionally, the Unicode character sequence U+200C U+200B (ZWNJ ZWSP) is inserted into comments * meta.SO: Comments are not wrapped, continued on other side of page * Wikipedia, Zero-width non-joiner * Wikipedia, Zero-width space * Chromium, Issue 449209: Chrome renders zero-width non-joiner characters as tofu (should be non-printing) tofu を掬うスニペットでも書くかな...