ソフトハイフン(SHY)の検出と削除

ワープロやWebページから混入した隠れたソフトハイフン文字(U+00AD)を検出します。予期しないハイフネーションや文字列の問題を防止するために除去します。

Zero-Width Characters

詳細な説明

ソフトハイフン:条件付きブレーク

ソフトハイフン(SHY、U+00AD)は、行をまたいで折り返す必要がある場合に単語がハイフネーションされる位置をマークする不可視の文字です。通常のハイフン(-)とは異なり、ソフトハイフンはその位置で実際に折り返される場合にのみ表示され、そうでなければ完全に不可視です。

ソフトハイフンの発生源

  • ワープロ:Microsoft Word、LibreOffice、Pagesがハイフネーション機能を使用するとソフトハイフンを挿入します。
  • Webコンテンツ:HTMLエンティティ­がDOMでU+00ADとしてレンダリングされます。Webページからテキストをコピーすると、これらが実際のSHY文字になります。
  • PDF抽出:専門的に組版されたPDFから抽出されたテキストには、改行位置にソフトハイフンが含まれていることがよくあります。
  • CMS出力:コンテンツ管理システムがソフトハイフンで長い単語を自動ハイフネーションする場合があります。

ビジュアライザーの表示方法

各ソフトハイフンは可視化で紫色の**[SHY]**マーカーとして表示されます。出力で簡単に見つけることができます。

ソフトハイフンが引き起こす問題

# 検索がマッチしない:
"inter\u00ADnational" !== "international"

# URLが壊れる:
https://example.com/inter\u00ADnational-guide

# 変数名が無効:
const inter\u00ADval = 1000;  // ほとんどの言語で構文エラー

ソフトハイフンはテキストが折り返される時にのみ表示されるため、同じテキストが異なるウィンドウ幅で異なって見える可能性があり、特に厄介です。

検出と削除

  1. テキストをホワイトスペースビジュアライザーに貼り付けます。
  2. SHYトグルを有効にしてソフトハイフンの位置に[SHY]マーカーを確認します。
  3. 統計パネルでカウントを確認します。
  4. CleanセクションでSHYを有効にし、Cleanをクリックしてすべてのソフトハイフンを削除します。
  5. 出力を確認 — 単語が隠れたブレークポイントなしで連続しているはずです。

HTMLでの組版レイアウトに特に必要でない限り、ソフトハイフンはほぼ常に安全に削除できます(CSSのhyphensプロパティが現代的な代替手段です)。

ユースケース

コンテンツ編集者が「international」という単語を含むいくつかの記事が検索に表示されないことに気づきます。ホワイトスペースビジュアライザーが記事本文で「inter[SHY]national」のソフトハイフンを検出します。Wordドキュメントからコピーされたものでした。ソフトハイフンを除去すると検索インデックスが正常に動作します。

試してみる — Whitespace Visualizer

フルツールを開く