メモ帳++。 コードに誤ってキリル文字が含まれる-問題の解決策

昨日、一見正しいコードのエラーを見つけるのに2時間近く費やしました。 問題は一般的なものであることが判明しました-キリル文字「e」が何らかの形で「text」配列のキーに入りました。 見た目は、ラテン語「e」と違いはなく、問題を見つけることは非常に困難でした。 私は、ほとんどのプログラマー、そして時々テキスト情報を扱う人々だけが、同様のトラブルに遭遇することを確信しています。 これは、ロシア語と英語のレイアウトで同じキーに配置されている英語の文字「s」とロシア語の「es」に特に当てはまります。 これは私にとって初めてのケースではないため、この問題の解決策を詳細に探し始めることにしました。 そして、解決策-非常にエレガントではありませんが、非常に実行可能-が見つかりました。



歴史的に、私は一般的に作業するために、特にPHPでスクリプトを書くためにNotepad ++を使用します。 そして、たとえば、変数$ iicuxiphametodと$іiuihamet®d(奇妙な名前は無視してください-これは単なる例です)の名前はまったく同じに見えますが、右側の単語の文字の半分はキリル文字です。



画像



私が最初に考えたのは、ラテン文字のすぐ右または左にあるすべての小文字キリル文字を正規表現検索を使用して検索 、手動で、または再び正規表現でそれらを置き換えることでした。



検索例(テンプレート(?<= [A-Za-z])[-і] | [-і](?= [A-Za-z])、文字クラス「i」ウクライナ語):



画像



検索結果:



画像



簡単にするために、ラテン語に似たキリル文字のみをシンボルクラスに選択しませんでしたが、それらすべて(ロシア語とウクライナ語のアルファベット、ウクライナ語の文字を除く)を含めました-原則そのものを示したいだけです。



または、このソリューションを検討することもできますが、コードがそのように機能しない場合は、各ファイルをチェックする必要があります。 そして、これは便利ではありません。



私の2番目の考えは次のとおりでした。「キリルアルファベットに別のフォントまたは別のサイズのフォントを設定して、入力時のキリルアルファベットとラテンアルファベットの外観が既に異なり、誤って入力した文字が印象的であり、すぐに修正できますか? »メモ帳++では、そのようなオプションはありませんでした。 さまざまなプログラミング言語、さまざまなタイプのデータ(変数、行、予約語など)に対して個別のフォント、サイズ、色を指定できますが、キリル文字に対しては指定できません。



それから、おそらくこれを実装できるプラグインがあると思いました。 しかし、そのようなサプリメントを探しても成功しませんでした。



そして、明るい考えがありました- キリル文字がラテン文字と異なるフォントを見つけて、サービスワード、変数、その他の問題のあるカテゴリに設定する必要があります。 そして、そのようなフォントは、エキゾチックな名前ではありますが、発見されました(そのようなフォントはそれほど多くは発見されなかったことに注意すべきです)。



したがって、たとえば、変数名にSimSun-ExtBフォントを設定すると、上記の名前が表示されます([オプション]-> [スタイルの定義]-> [フォントスタイル])。



画像



その他の例



フォントMingLiU-ExtB:



画像



フォントNSimSun:



画像



さらに進むと、キリル文字がラテン語とは異なる文字列データ(SimSun-ExtBなど)、および他の一部(たとえば、通常の状況ではキリル文字が不要な変数)にフォントを指定できます。 キリル文字 、たとえば、フォントMiriam Fixed。 ロシア文字の代わりに、他の文字がそのようなフォントで表示され、すぐにわかります。



画像



Courier Newフォントの同じ名前を比較します。



画像



およびフォントMiriam Fixedで:



画像



フォントは非常に似ていますが、2番目のケースでは、キリル文字の誤った入力は実質的に除外されます。



このソリューションはメモ帳++で機能しますが、他のエディターやIDEでも同じことができると思います。



この方法が誰かが時間を節約し、これらの初歩的な、しかし将来のそのような不快な間違いを防ぐのに役立つことを願っています。



All Articles