カーリークォートや長いダッシュでコードが壊れる?まっすぐな引用符に直す方法
曲がった引用符、曲がったアポストロフィ、長いダッシュ(en dash、em dash)、改行なしスペースは、見た目は普通の記号と同じですが、コンピューターは別の文字として扱います。コード、CSVファイル、表計算ソフトの数式、コマンドラインは普通の記号を前提にしています。貼り付けた引用符は文字列として認識されず、フラグの二重ハイフンはダッシュに変わり、改行なしスペースのせいでプログラムが行を読めなくなることもあります。コードに貼り付ける前に文字をまっすぐに直し、実際に動かす場所でその結果を確認してください。
貼り付けテキストを整える貼り付けた文章の改行がおかしい無料で使う文字がどこから入るのか
ワープロや多くのメールソフトは、入力中にまっすぐな引用符を曲がった引用符に置き換えます。これはスマート引用符と呼ばれます。Wordは二つのハイフンをダッシュに変えることもあります。Webページや一部のエディターは、二つの単語を同じ行に保つ改行なしスペース(U+00A0)を挿入します。これらの文字は組版としては正しいため表示されますが、プログラムが読む文字としては誤りです。
何が壊れ、どこで起きるのか
| 場所 | 起きる問題 |
|---|---|
| ソースコード | 曲がった引用符は文字列の区切りとして扱われず、多くの言語では文字列の外にある曲がった引用符や改行なしスペースを受け付けません |
| シェルのコマンド | en dashで入力したダッシュはオプションの記号として認識されず、プログラムは不明な引数として扱います |
| CSVファイル | 解析ツールはフィールドをまっすぐな二重引用符で囲むため、曲がった引用符ではフィールド内のカンマが守られません |
| 表計算ソフトの数式 | 曲がった引用符が文字の一部になるか、数式がエラーを返します |
| JSON | 曲がった引用符は有効な文字列の区切りではないため、解析に失敗します |
CSVファイルが従う引用ルールについては、CSVとJSONの相互変換ガイドを参照してください。
fixmintでまっすぐにする
よくあるケースは三つのツールで対応できます。それぞれ扱う文字の範囲が異なります。
- 曲がった引用符。 貼り付けテキストの修正を開き、「曲がった引用符をまっすぐに」にチェックを入れます。曲がった一重引用符とアポストロフィはまっすぐな一重引用符に、曲がった二重引用符はまっすぐな二重引用符に変わります。ダッシュはそのままです。行の前後の空白の削除や連続する空白の詰めなど、ほかのオプションは初期状態でオンになっています。
- ダッシュ、省略記号、特殊なスペース。 見えない文字を削除を開き、「曲がった引用符、en/emダッシュ、…も通常のASCIIに変換」にチェックを入れます。ダッシュはハイフンに、省略記号は三つのドットに変わります。改行なしスペースは初期状態で通常のスペースに変換されます。マーク表示では、どこが変更されたかを確認できます。
- 一文字や一語句。 検索と置換を開き、正規表現をオフのままにして、検索欄に対象の文字、置換欄に通常の文字を入力します。正規表現がオフの場合、検索欄は文字そのものとして扱われるため、曲がった引用符はそれ自身とだけ一致します。
よくある貼り付けテキストに二つ目のツールを適用した例です。
| 変換前 | 変換後 |
|---|---|
| “Hello,” she said. | "Hello," she said. |
| It’s done. | It's done. |
| —verbose | -verbose |
最後の行は制限を示しています。ダッシュは一つずつハイフンに変わるため、ワープロが一つのem dashにまとめた二つのハイフンは、単一のハイフンに戻ります。--verboseのようなフラグは、変換後に手作業で直してください。
結果を実行する場所に貼り付け、そこで動作を確認してください。まっすぐにしても文章の意味は変わらないため、正しく実行できれば、それが最終的な確認になります。
結果を確認する
まっすぐにしたテキストを、もう一度「見えない文字を削除」にかけ、マーク表示を確認してください。マークが残っていれば、一回目の変換で対象にならなかった文字です。ゼロ幅スペースや特殊なスペースなどが考えられます。マーク表示で位置がわかるので、その場で直せます。
画面上では文字がほとんど同じに見えるため、目視では見落とします。まっすぐな引用符と曲がった引用符は形の違いがわずかですし、多くのフォントではen dashがハイフンと似て見えます。目で確かめるのではなく、実際に動かして確認してください。
まっすぐにしないほうがよい場合
印刷物やWebページで読まれる文章では、曲がった引用符やダッシュをそのまま残してください。それらはその場面で正しい組版です。まっすぐにするのは、コード、CSV、数式、コマンドに入れる文字列だけにしましょう。ワープロで書いた文章を後でコードに貼り付ける場合は、スマート引用符の設定をオフにしておくと便利です。
注意すべきケース
- 引用符の混在。 一つの文書に曲がった引用符とまっすぐな引用符が混ざっていることがあります。一度まっすぐにする処理を実行したあと、残っているものがないか検索してください。元の文書によって記号が違うためです。
- 単語中のアポストロフィ。 短縮形の中の曲がったアポストロフィは、まっすぐなものに変わります。これは多くのコードが想定している形です。文字列の中に現れる短縮形は確認してください。
- 元の文書を残す。 まっすぐにする作業は一方向です。まっすぐな引用符から、もとが曲がった引用符だったかは判断できません。元の文書は残し、変更はコピーに対して行ってください。
- 文中のダッシュ。 文中の区切りとして使われたem dashはハイフンになるため、「wait — stop」は「wait - stop」になります。読むための文章であれば、手作業で書き直してください。
- 見えない文字。 貼り付けたテキストには、ゼロ幅スペースが含まれることもあります。これらは引用符ではありませんが、似た形でコードを壊します。見えない文字のガイドで詳しく説明しています。
英語原文をもとに、AIの支援を受けて翻訳しています。
コメント
まだコメントはありません。最初のコメントを書いてみましょう。


