テキスト ファイル内のすべての表示文字または非表示文字 (BOM、方向マーク、改行などの文字) を精査するために使用できるソフトウェアはありますか?
文字の Unicode 名を表示するのも便利な機能です。
プログラミング言語で解析する前に、テキスト ファイルを分析するためにこのようなアプリを使用したいと思います。
答え1
おそらく、優れた 16 進エディタが最善の策でしょう。FrHed (http://frhed.sourceforge.net/en/) Windows または Bless を使用している場合 (http://home.gna.org/bless/) を Linux で実行します。
答え2
のバベルパッドこのエディタは素晴らしいです。カーソルを文字の後に置くと、Unicode 番号と Unicode 名が表示されます。また、Unicode 情報ビューアが組み込まれており、文字の多くの Unicode プロパティが表示されます。残念ながら、BOM は表示されずに処理され、改行文字も表示されずに解釈されます。これを変更する方法があるかもしれません。ドキュメントは... まあ、最高の部分ではありません。ただし、LRM などの目に見えないコントロールが表示され、スペースとノーブレーク スペースなどを区別できます。
答え3
おそらくこれは役に立つでしょうが、答えは Stack Overflow の方が適切です。私は Perl で、あなたが望むことを実行する小さなパーサーを構築しました。ここでは強調表示がないのが残念です。
#!/usr/bin/perl
use strict; use warnings;
use feature qw(say);
use Data::Dumper;
use Unicode::String;
use utf8;
my $line_no = 1;
# Read stuff from the __DATA__ section as if it were a file,
# one line at a time
while (my $line = <DATA>) {
# Create a Unicode::String object
my $us = Unicode::String->new($line);
# Iterate over the length of the string
for (my $i = 0; $i < $us->length; $i++) {
# Get the next char
my $char = $us->substr($i, 1);
# Output a description, one line per character
printf "Line %i, column %i, 0x%x '%s' (%s)\n",
$line_no, # line number
$i, # colum number
$char->ord, # the ordinal of the char, in hex
$char->as_string, # the stringified char (as in the input)
$char->name; # the glyph's name
}
# increment line number
$line_no++;
}
# Below is the DATA section, which can be used as a file handle
__DATA__
This is some very strange unicode stuff right here:
٩(-̮̮̃-̃)۶ ٩(●̮̮̃•̃)۶ ٩(͡๏̯͡๏)۶ ٩(-̮̮̃•̃).
これが何をするのか見てみましょう:
- ファイル ハンドル (
DATA
セクションはそのように使用できます) から行ごとに読み取ります。 - 行から Unicode 文字列を表すオブジェクトを作成します。
- その文字列内の文字を反復処理する
- 各文字の名前、番号、その他の情報を出力します
実に簡単です。名前用の便利なライブラリがあるかどうかはわかりませんが、PHP に適応できるかもしれません。
それが役に立てば幸い。
スマイリーのものをここに載せました:٩(•̮̮̃•̃)۶ のようなスマイリーはどの Unicode 文字で構成されていますか?
答え4
お勧めしますメモ帳++. 「表示」->「シンボルを表示」で「すべてのシンボルを表示」を選択すると、非表示の文字がその名前とともに表示されます。たとえば、使用している改行形式に応じて、改行は LF、CRLF、または CR として表示されます。