蝸牛備忘録

自分用の備忘録になる予定です。

sublime text3で文字コードがgbk変換されて戻らなくなった話

100年ぶりくらいにブログページを開いた気がします。

それはともかく最近はRuby on Railsで開発をやっていて、

テキストエディタsublimeを使っているのですが、ここ最近ずっと困ったことがありました。

 

sublimeで勝手に文字コードがgbkに変わる問題。

 そして稀にだけどSave with Encoding とかReopen with Encodingでも直らない時がある。

最早何をしてもgbkから戻らなくなった時の苦肉の策を考えてみた。

 

 

 結論

サクラエディタとかで文字コードなおして保存しなおす。

※Save with Encoding とか Reopen with EncodingでUTF-8にできなかった人向け

最終手段すぎるけど個人的に確実に直るやつ。

Gitとかで変更履歴しっかり管理してる場合は気を付けた方がいい。

保存したファイルの変更履歴が分からなくなる。

commitの中身はこれだけとかにした方が多分いい。(というかこれやらないで直る方法を知りたい)

 

とりあえず蛇足で保存の流れを。

 

まず文字化けしてしまったsublime textを用意します

f:id:biboKatatsumuri:20180812170918p:plain

 

↑は思い出しながら作った文字化けしてるっぽい適当なテキスト

「# ??b???」が文字化け

これをとにかくundoなどで戻す。

ctrl + zで戻す。

 

f:id:biboKatatsumuri:20180812170930p:plain

 

元に戻ったテキストを全文コピーする。

サクラエディタを開き貼り付ける。

 

f:id:biboKatatsumuri:20180812171129p:plain

 

サクラエディタ文字コードの扱いがめちゃくちゃ楽(と思っている)。

まずエディタ右下の文字コードが表示されている床をダブルクリック。

 

f:id:biboKatatsumuri:20180812171210p:plain

 

すると即座に文字コード設定のウィンドウが開くのでUTF-8を選択。

 

f:id:biboKatatsumuri:20180812171251p:plain

 

 このファイルを名前を付けて保存する時に、

元の文字化けで死んでいたファイルを選択して上書き保存する。

以上。

 

 

 

そもそもgbkにならないよう設定できないのか

それができたら苦労はしない。

調べるとそもそもショートカットキーでgbk変換が登録されているらしい(やめてほしい)。

qiita.com

 

上記の記事は開発環境Macっぽい。

commandの代わりにctrlで設定すればこの苦しみから解放されるのか...

 

> "keys": ["shift+ctrl+c"]

 

そんなことはなかった。様子見たもののまたgbkに。

やはり設定値が違うのか....他も見たけどいまいちわからん

 

とりあえず復帰はするけどもうgbkにならない方法が知りたい。

間違ったショートカットキーを押さなければいい話か.....

 

 

●jarファイルをバッチファイルから実行する際のLog4j2設定ファイルの場所

log4j2でつまった箇所をメモ

 

【トラブル概要】

log4j2を利用したプログラムを実行可能jarファイルに。

これをバッチから呼び出す時にログが出なくなってしまった。

ちなみにlog4j2.xml(設定ファイル)はsrcのresorcesディレクトリの中に置いていた。

eclipseからは問題なく実行されていたのに…。

 

とりあえずバッチはコマンドプロンプトのコマンドでjar実行してるだけ。

チラ見えするコマンドプロンプトにエラーが出てるっぽかったので、画面を確認するために下記のようにpauseを置いて処理を止めてみる。

cd [jarの置いてあるディレクトリ]

java -jar [jarファイル名]
pause

 

そして確認できたエラーの内容↓

 

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

 

log4j2の設定ファイルが無いと怒られているっぽい。デフォルトの設定使ったからコンソールにしか出さんよと。

そんな事言ったってお前...jarの中にあるやんけ....

バッチファイルにて-classpath絶対パスを指定してもウンともスンとも言わない。クラスパスは違う。なるほど?

 

【解決策】

jarを置いてるディレクトリにlog4j2.xmlを置く

 

そうすると無事にログが出力された。

別のディレクトリでも見つけてもらえる方法は分からず。特定のファイルのパスを設定するオプションとかあるのだろうか。

処理的には問題ないので一応これで進めることに。腑に落ちないけども。

 

出力成功したログが文字化けしてたりもしたけど、これはxmlの設定でどうにかなった。この設定も忘れないうちにメモりたい。

こういう所でつまずいてしまうポンコツ加減よ。

●使っているPCの情報を見る

手始めに最近覚えた事をメモします。

 

PCのWindows10とか32ビット、64ビットとか。そういった情報を見る時に便利なショートカット。

 

【Winキー + breakキー】

 

で画面が出てくる。

WinキーてのはWindowsのアイコン(?)が描かれた謎のキーの事らしい。

 

ともかく、これで開いた画面にPCの詳細設定へのリンクもあるから意外と使える。

環境変数とか設定する時も使えますと。

 

こんな感じでぼちぼち覚えた事をメモしていけると良いなぁ。