
この記事の目次
ABC123 と ABC123 はよく似ていますが、異なる Unicode 文字で構成されています。通常の英字と数字だけを受け付けるフォームでは全角の値が拒否され、表計算ソフトでの比較でも一致しないことがあります。
中国語の入力方式でも、中国語の文章とともに全角の英字・数字・記号が入力されます。問題となるのは文字列に保存された文字そのものであり、表示に使うフォントや拡大率だけではありません。
よく使われる対応関係
| 半角 | 全角 | 起こりやすい問題 |
|---|---|---|
A | A | 識別子の照合に失敗する |
1 | 1 | 数値欄で受け付けられない |
, | , | 区切り文字として認識されない |
( ) | ( ) | 検索や解析の結果が異なる |
通常の空白と全角空白も、入力欄では似て見えることがあります。先頭や末尾の空白が別の不一致を生む場合もあります。商品コード、連絡先、取り込んだレコードなどは、変更前に値全体を確認してください。
必要な項目だけを変換する
ABC123 のような商品識別子では、英字と数字を変換すると ABC123 になります。一方、中国語の文章で記号をすべて変換すると、意図した組版を損なうことがあります。入力用のデータ項目と、公開する文章には、それぞれ適した処理が必要です。
全角・半角変換ツールでは、英字、数字、対応する記号、空白を個別に選べます。不一致の原因となっている種類から変換し、元の値と比べてください。
全角・半角変換では変わらないもの
全角・半角変換は、簡体字を繁体字に変える処理ではありません。また、異なる文字体系で見た目が似ている文字を同じ文字にする処理でもありません。例えば、ラテン文字と似た形のキリル文字は、別途見分ける必要があります。
中国語の句点 。 は、ASCII のピリオド . に対応する全角文字ではありません。中国語の引用符や書名を囲む記号も、すべてが全角 ASCII の対応表に含まれるわけではありません。一度の変換であらゆる記号の違いが解消されるとは限りません。
変換前後の値を比較する
例として商品コード ABC123 を使います。英字だけを変換すると ABC123 となり、数字は全角のままです。英字と数字を両方変換すれば ABC123 になります。見た目が一部改善しても、通常の英数字のみという条件をまだ満たさないことがあります。
先頭に全角空白を加えた ABC123 では、英字と数字だけを変換しても空白は残ります。空白の変換は幅を変える処理であり、削除とは異なります。入力先が先頭の空白を認めない場合は、その形式の規則に従って別途取り除いてください。
識別子の一部として意味を持つ先頭のゼロは保持します。001234 を 001234 に変換しても、さらに 1234 にするべきではありません。後者は数値としての解釈であって、全角・半角変換ではありません。表計算ソフトでは、先頭のゼロが重要な識別子を文字列として保存します。
句読点とファイルの構造を区別する
中国語の文章内のコンマは句読点ですが、CSV ファイルの ASCII コンマは項目の区切りになる場合があります。生のデータファイルで中国語のコンマをすべて ASCII コンマに置き換えると、適切に引用符で囲まれていない項目の解析結果が変わる可能性があります。選択した項目のテキストを変換し、その後でファイル形式に沿った引用符の規則で書き出してください。
文章中の全角コロンと URL 内のコロンも役割が異なります。ツールは文字を変換できますが、変換後の URL が目的の場所を指すかどうかは判断しません。記号の幅を狭くすればどんな値も有効になると考えず、リンクや構造化された値をそれぞれの文脈で確認します。
文字の見た目の幅はフォントにも左右されます。フォントを拡大したり変更したりしても、A が A に変換されるわけではありません。完全一致の比較が問題なら、保存されたテキストを調べるか変換します。段落の見た目だけが問題なら、文字自体を変更する必要はない場合もあります。
大量の取り込みでは、列全体を置き換える前に、英字・数字・記号・空白を含む少量のサンプルを試します。照合できることが分かっているレコード、先頭にゼロがあるレコード、中国語の文章を含むレコードを確認してください。どの種類を変換し、どれを元のままにするかを判断しやすくなります。
変換後も、取り込み先が意図したレコードを受け付けるまでは、元の値と整理後の値を並べて残します。変更された文字を直接確認でき、記憶を頼りに復元したり、すべてを元に戻せるとは限らない逆変換を試したりせずに済みます。
取り込みデータを整理する手順
- 元の列またはファイルを保存する。
- 数字コードなど、形式が明示されている項目を特定する。
- コピー上で必要な種類の文字だけを変換する。
- 変換後の先頭のゼロ、記号、空白を確認する。
- 照合や検証を再度試してから、使用するデータを置き換える。
システムで明示されている場合を除き、パスワードや署名対象の文字列を正規化しないでください。1文字変われば値も変わります。氏名や識別子についても、元の表記を戻せるように原本を残します。
送信内容に長さの制限もある場合は、変換後のテキストを文字数カウンターで確認します。全角・半角の変更で表示幅が変わっても、文字数が減るとは限りません。
コメント
読み込み中…
コメントはまだありません。