認識エラーになる箇所をすべて確認したいNo.35075
beans さん 16/06/22 15:28
 
こんにちは、質問失礼いたします。
CSVファイル等を開く際に、マルチバイト文字が壊れている(2バイト文字の1バイト
で切れている等)文字が含まれている場合に「認識エラー」となり、「変換できなか
った文字にジャンプする」ボタンが表示されますが、それ以後もすべての同様の問題
のある個所を確認したいです。
何かよい方法はございませんでしょうか?

[ ]
RE:35075 認識エラーになる箇所をすべて確No.35076
秀丸担当 さん 16/06/22 16:33
 

読み込み時に表示されるエラーメッセージは最初のエラー個所にしか移動できな
いです。
全てのエラー個所に簡単に移動できたら便利だと思います。
今後の機能の参考にさせていただきます。

現状でできる方法としては、保存するときに変換できない文字となる部分につい
てはマクロのfindspecialで調べる方法がありますが、読み込み時のエラーにつ
いてはできないです。

他には、Shift-JISのファイルだとして、全角文字の1バイト目が正確で2バイ
ト目が違うというような場合は、正規表現を使った検索で調べる方法が考えられ
ます。
例えば、検索ダイアログで「正規表現」をONにして、検索文字列に以下の文字列
を入れて検索します。
[\x81\x40-\xFC\xFF][^\x81\x40-\xFC\xFF\n]

厳密には、読み込み時にエラーとなった場合、最初の文字以降の文字は、本当は
合っていても最初のズレによって連鎖的にずれていて文字化けする可能性もあり
ます。

マクロのfindspecialについてはおそらく期待するものとは違うと思うので、参
考までの情報としてですが、書いておきます。
例えば以下の一行をマクロファイル用のフォルダに、test.macというファイル名
で保存します。

  findspecial 0, encode, 0;

マクロファイル用のフォルダは[その他]→[動作環境]→[環境]であらかじめドキ
ュメントフォルダ配下など、任意のわかりやすい場所の指定をおすすめします。
マクロの実行は[マクロ]→[マクロ実行...]より、test.macを指定すると実行で
きます。
実行するとカーソルより下方向の変換できない文字を検索します。
上方向の場合は、以下のようにします。

  findspecial 0, encode, 1;

[ ]
RE:35076 認識エラーになる箇所をすべて確No.35077
秀丸担当 さん 16/06/23 10:55
 

すみません。正規表現で検索する例はうまくいっていませんでした。
全角の後に半角があるとヒットしてしまうだけでした。
Shift-JISの範囲から外れる文字として検索する場合は、以下のように書くと近
いものがヒットしましたが、すべて厳密というわけにはいきませんでした。
[^\x01-\x7E\xA1-\xDF\x81\x40-\xFC\xFF]
さらに認識エラーとなる個所とは違っていて、現状ではやはり読み込み時のジャ
ンプしかなさそうでした。
今後何らかの方法を検討したいと思います。

[ ]