非表示の Unicode 文字の代わりに箇条書きを表示するオプションを備えたテキスト エディターを作成しています。残念ながら、Unicode 文字が見えないかどうかを判断する簡単な方法はないようです。
非表示の文字を調べるために、すべての Unicode 文字を含むテキスト ファイルを見つける必要があります。そのようなファイルを見つけることができる場所を誰かが知っていますか?
編集: Mac OS X 用の Cocoa でこのアプリを作成しています。
非表示の Unicode 文字の代わりに箇条書きを表示するオプションを備えたテキスト エディターを作成しています。残念ながら、Unicode 文字が見えないかどうかを判断する簡単な方法はないようです。
非表示の文字を調べるために、すべての Unicode 文字を含むテキスト ファイルを見つける必要があります。そのようなファイルを見つけることができる場所を誰かが知っていますか?
編集: Mac OS X 用の Cocoa でこのアプリを作成しています。
ああ、そうですか...実際の目に見えない文字 ;) この FAQ はおそらく役に立ちます:
http://www.unicode.org/faq/unsup_char.html
現在の非表示のコードポイントが一覧表示され、役立つと思われるその他の情報が含まれています。
編集:いくつかのココア固有の情報を追加しました
Cocoa を使用しているため、制御文字の Unicode 文字セットを取得して、それと比較できます。
NSCharacterSet* controlChars = [NSCharacterSet controlCharacterSet];
上に投稿した FAQ リンクを見て、そこにある情報に基づいて必要と思われる文字を、controlCharacterSet によって返される文字セットに追加することもできます。
編集: Unicode 文字から Unicode 文字列を作成する例を追加しました
unichar theChar = 0x000D;
NSString* thestring = [NSStirng stringWithCharacters:&theChar length:1];
このコードがまったく役立つかどうか教えてください:
-(NSString*)stringByReplacingControlCharacters:(NSString*)originalString
{
NSUInteger length = [originalString length];
unichar *strAsUnichar = (unichar*)malloc(length*sizeof(unichar));
NSCharacterSet* controlChars = [NSCharacterSet controlCharacterSet];
unichar bullet = 0x2022;
[originalString getCharacters:strAsUnichar];
for( NSUInteger i = 0; i < length; i++ ) {
if( [controlChars characterIsMember:strAsUnichar[i]] )
strAsUnichar[i] = bullet;
}
NSString* newString = [NSString stringWithCharacters:strAsUnichar length:length];
free(strAsUnichar);
return newString;
}
重要な注意事項:
これはおそらく最も効率的な方法ではないため、作業を開始した後で最適化の方法を決定する必要があります。これは BMP 上の文字でのみ機能します。そのような要件がある場合は、合成された文字のサポートを追加する必要があります。これはエラーチェックをまったく行いません。
このコードに興味があるかもしれません: http://gavingrover.blogspot.com/2008/11/unicode-for-grerlvy.html
開始するのに適した場所は、Unicode コンソーシアム自体であり、大量のデータを提供しています。その中には、探しているものもあります。
また、文字列を指定して各文字の UCN を返す DLL を作成中です。しかし、息を止めないでください。
現在の正式な Unicode バージョンは 5.1.0 で、そのすべてのコード ポイントを記述したテキスト ファイルはhttp://www.unicode.org/standard/versions/components-latest.htmlにあります。
Java の場合、java.lang.Character.getType。C の場合、u_charType()またはu_isgraph()。
不可能な作業です。Unicode は Klingon もサポートしているため、機能しません。ただし、ほとんどのテキスト エディタは、標準の ANSI 非表示文字を使用しています。また、Unicode ライブラリが優れている場合は、同等の文字やカテゴリの検索をサポートします。これらの 2 つの機能を使用して、そこにあるエディターと同様にそれを行うことができます。
編集:はい、私はクリンゴンのサポートについてばかげていましたが、それは真実ではありません... もちろん、クリンゴンはコンソーシアムによってサポートされていませんが、のために定義された Unicode の「私用領域」でクリンゴンの動きがありますクリンゴン文字 (U+F8D0 - U+F8FF)。興味のある方はこちらにリンクしてください:)
注:クリンゴンのプログラマーが使用するエディターは何でしょう...