ソフトハイフン除去
PDFからコピーした例文に隠れた3つの見えない区切りを取り除き、「hyphenation」「international」「cooperation」を元の1語に戻します。通常のハイフンやダッシュは残ります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
ソフトハイフンは、ワードプロセッサ、組版エンジン、PDF書き出しが、両端揃えの行末で長い語をきれいに折り返せるよう挿入する不可視のUnicode文字です。そのテキストを検索欄、CMS、表計算、エディタへコピーすると、任意の区切り印が文字と一緒に残ります。紙面では一語に見えたものが完全一致検索に失敗し、URLの途中で割れ、フォント次第でハイフンが出たり消えたりします。本ツールはテキストを走査し、U+00ADとそれを表す一般的なHTMLエンコードをすべて除去し、除去数付きの清浄な文字列を返します。通常のハイフン、ダッシュ、空白はそのままです。空入力は明確な検証エラーで拒否されます。
ソフトハイフンとは何か、コピーした語が割れる理由
ソフトハイフンは、よく知られた複合語の間に自分で打つハイフンではありません。Unicode文字U+00AD(SOFT HYPHEN)であり、HTMLソースでは名前付き実体­、または数値参照­や­として現れます。組版系は任意の改行候補としてこれを入れます。
語が行に収まれば文字は不可視のままで、折り返す必要があるときだけレンダラがその位置にハイフンを描くことがあります。PDF書き出し、InDesignのストーリー、ハイフネーションをオンにしたWord文書、多くのニュースCMSテンプレートは、両端揃えのカラムを整えて見せるため長い語にこの印を散らします。
問題は、人が描画結果をコピーしたとき、あるいは収集器が同じことをしたときに始まります。任意の印が文字と一緒に移動します。下流では、「国際」を探しても inter と U+00AD と national に分かれ、一意制約は見た目が同じ二つの見出しを別行として扱い、文字列から作ったURLにはブラウザやCDNごとに扱いが違う文字が混じります。
この能力はその任意の印だけを取り除きます。ハイフンマイナス、ノンブレーキングハイフン、enダッシュ、emダッシュ、ハイフネーションポイントは消しません。PDFが本物のハイフンと改行で割った語もつなぎ直しません。
それらは別の検索意図です。
送るものと返ってくるもの
数値と真偽値は十進またはtrue/falseの文字へ変換され、オブジェクト、配列、NaN、Infinityは拒否されます。除去対象は生のU+00ADと、HTMLエンコードの­、­、­です(十六進は大文字小文字を区別せず、先頭ゼロを許します)。
もともとソフトハイフンがなければresultはtextと等しく、changedはfalse、removedはゼロです。典型確認は、印が三つ入ったhyphenationが一語になること、残すべき通常ハイフンの隣にあるHTML実体、空でない元からソフトハイフンだけが落ちて空の結果になることです。
無料のブラウザフォームで貼ってコピーし、同じ契約をスクリプトから呼んでCMS欄、PDF抽出、CSV列を正規化できます。
ソフトハイフン除去が現場で効く場所
編集とローカリゼーションのチームは、PDFやInDesignの書き出しをCMSへ入れる前に掃除し、検索・スラッグ生成・翻訳メモリが黙って割れたトークンではなく一語を見るようにします。倉庫ロードやCRM取り込みを行うデータ技術者は、完全一致結合、一意検査、全文索引の前に自由記述列からソフトハイフンを除きます。
不可視のU+00AD一つで完全一致が外れになるからです。訴状・契約・赤字を整える法務とコンプライアンスは、両端揃えのWordやPDFの禁則印が比較ツールに残り、差分が騒がしくなるのをよく経験します。
商品検索とオートコンプリートは、利用者が「協力」と打ったときに、仕入れフィードから co +ソフトハイフン+ operation として届いたカタログ項目が当たるよう、問い合わせと保存見出しを正規化します。
あとからバリエーションセレクタ除去、ゼロ幅文字、アクセント除去、完全なUnicode正規化が必要なら、このremove-soft-hyphensページに載せすぎず、別の検索意図とランディングとして扱ってください。
活用例
PDFと両端揃えの貼り付けを掃除
PDF、Word、ニュースCMSからコピーした文を貼り、不可視のU+00ADで割れた語をつなぎ直します。
CMS欄とCSV列を正規化
見出し・本文・取り込みからソフトハイフンを除き、検索・一意キー・翻訳メモリが一語で当たるようにします。
よくある質問
ソフトハイフン除去は何をしますか?
不可視のUnicodeソフトハイフン(U+00AD)とHTMLエンコード­、­、­をテキストから取り除き、清浄な文字列と除去数を返します。通常のハイフンとダッシュは残します。
普通のハイフンやダッシュも消しますか?
いいえ。 ハイフンマイナス、ノンブレーキングハイフン、enダッシュ、emダッシュはそのままです。不可視のソフトハイフンとそのHTMLエンコードだけを除去します。
すでにきれいなテキストは変わりますか?
変わりません。 ソフトハイフンがなければresultは元のテキストと等しく、changedはfalse、removedはゼロです。
PDFからコピーした単語が検索で見つからないのはなぜですか?
単語の中に見えないソフトハイフンが入っている可能性があります。画面では「international」に見えても、内部では2つに分かれているため、完全一致の検索に失敗します。取り除けば見つかるようになります。
行末で本物のハイフンで分けられた単語もつなげますか?
いいえ、つなげません。取り除くのは見えないソフトハイフンだけです。PDFによっては目に見えるハイフンと改行で単語を分けていますが、それはそのまま残ります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/remove-soft-hyphens \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The hyphenation of international cooperation."}'const res = await fetch("https://api.kit.forhosting.com/str/remove-soft-hyphens", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The hyphenation of international cooperation."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/remove-soft-hyphens",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The hyphenation of international cooperation."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/remove-soft-hyphens", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The hyphenation of international cooperation."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The hyphenation of international cooperation."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/remove-soft-hyphens", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "The hyphenation of international cooperation."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_soft_hyphens",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ソフトハイフンとは何か、コピーした語が割れる理由
走査は決定的で、同じ文字列は常に同じJSONになり、ロケール表もネットワーク呼び出しも乱数も使いません。
送るものと返ってくるもの
必須フィールドtextに、空でない文字列を一つ送ってください。古いクライアント向けにinput、value、data、s、message、string、content、bodyという別名も受け付けます。空文字列は走査前にinvalid_inputで失敗し、文書化された文字上限を超えるペイロードも失敗します。成功時の応答は元のtext、清浄なresult、結果のlength、original_length、真偽のchanged、除去したソフトハイフン数のremoved、operation(値はremove_soft_hyphens)を返します。成功したAPI呼び出しの料金は公開ベースの$0.002、検証失敗(空テキストを含む)は前払い残高を消費しません。
ソフトハイフン除去が現場で効く場所
この能力は純粋なparseエンジンなので、API料金は成功一件あたり公開ベースの$0.002、検証失敗は残高を消費しません。
連携の活用例
安定したテストと抽出パイプライン
組版の禁則に依存しないフィクスチャと抽出文字列にし、ゴールデンと収集器を決定的に保ちます。
技術的な質問
空のテキストを送るとどうなりますか?
リクエストはinvalid_inputで失敗します。空文字列は拒否されるため、クライアントは黙った空結果ではなく欠落フィールドに気づけます。
ソフトハイフン除去の料金は?
ブラウザツールは無料で端末上で動きます。API要求は成功一件あたり$0.002で前払いKIT残高を使い、無効入力は課金されません。