時々、Unicode文字を含む英語のテキストを編集します。何らかの理由で、私のPCでは、Notepad ++がUnicode文字を???に変換するため、テキストが破損し、すべてのデータが失われます。Unicode文字を保持しながら、このようなテキストを編集する方法を探しています。フォントとしてConsolasを使用しています。フォントにこれらの文字がすべて含まれていない場合、Notepad ++からテキストを(Windowsのクリップボードを介して)コピーすると、なぜデータが失われるのですか?
時々、Unicode文字を含む英語のテキストを編集します。何らかの理由で、私のPCでは、Notepad ++がUnicode文字を???に変換するため、テキストが破損し、すべてのデータが失われます。Unicode文字を保持しながら、このようなテキストを編集する方法を探しています。フォントとしてConsolasを使用しています。フォントにこれらの文字がすべて含まれていない場合、Notepad ++からテキストを(Windowsのクリップボードを介して)コピーすると、なぜデータが失われるのですか?
回答:
ファイルが実際にUnicodeでエンコードされている場合、Notepad ++はそれを自動的に検出するはずです。Consolasフォントが私のためによく働きます。次の2つのメニューオプションのいずれかを試すことができます。
最初のものがあなたが望むことをするだろうと確信しています。
質問で説明されている問題は、空のドキュメントまたは新しいドキュメントが「ANSI」に設定され、Unicode文字がそこに貼り付けられたときに発生します。
空のドキュメントや新しいドキュメントで使用した場合、少なくとも私がテストしたNotepad ++のバージョン(v5.4.5)では自動検出は行われません。「ANSI」は、メニュー設定 → 環境設定 →タブ新規文書/保存ディレクトリーを開くで設定されていない限り、新規文書のNotepad ++のデフォルトです。
溶液
解決策は、貼り付け前にエンコードをUTF-8に設定し、メニューの[ 形式] →[ UTF-8でエンコード ]を選択することです。
例
Wikipediaページロシア語を表示するFirefox から、新しいNotepad ++ドキュメント、ロシア語(русскийязык、russkiy yazyk)にテキストをコピーしました。
エンコードが「ANSI」から変更されていない場合、これが結果です。
エンコードが変更された場合、これが結果です。
次の図に見られるように(キリル部分が強調表示されています)、Notepad ++は実際にUnicode文字をASCII 63(16進数3F)、疑問符に変換します。そのため、クリップボードからテキストをコピーするとUnicode文字が("ANSI"モードで)失われます(フォントの問題ではなく、情報が失われます)。
テスト済み:Notepad ++ v5.4.5(UNICODE)。
UnicodeはWindows 7で完全に動作します。発生する唯一の問題は、変更された文字を再入力する必要があることです。それは私に起こった。私はスカンジナビア文字で書いているので、ä-> E4、ö-> F6。それらをすべて置き換えるのは苦痛ですが、それだけの価値はあります。
ANSI-> UTF-8からページをエンコードすると、文字の問題が発生します。
最初にUTF-8で新しいページを作成してから、情報をコピーして貼り付けることをお勧めします。その場合、問題は発生しません/発生しません。