2022/08/27

【解決】Windows10/11の「切り取り&スケッチ」が前回利用したファイル形式を覚えてくれない

Windows10/11で、「切り取り&スケッチ」(切り取り領域とスケッチ)を使ってスクリーンショットを撮り、PNG形式で保存した際、前回使用したファイル形式を覚えてくれず、「ファイル名」に表示される拡張子はPNGだが、「ファイルの種類」としてはJPG形式が選ばれる。


PNGで保存するには、ファイル形式をPNGに変換しなければならず、非常に不便であった。

2022/08/13

PDFの文字コードの話

PDFを表示すると文字があり、文字としてコピペできるので、文字(を指定する文字コード)が埋め込まれているものだと思っていた。

結論から言うと、どの文字コードでもない、というのが答え。


Google Code PrettifyからPrism.jsへ移行(Blogger)

Google Code Prettifyは、2020年4月22日にメンテされていないのでアーカイブしますというメッセージが残され、更新が止まっている。また、プログラムコードではないことを指すlanguate-noneの設定ができないので、何でもかんでも色付けされてしまうこともあり、Prism.jsを利用することにした。

外付けUSB SATAディスクのS.M.A.R.T.監視

smartdの起動が失敗している

# /etc/init.d/smartd start
 * Starting smartd ...
 * start-stop-daemon: failed to start `/usr/sbin/smartd'
 * Failed to start smartd
 * ERROR: smartd failed to start

これだけでは何が原因かわからず放置していたが、調査することに。

2022/08/12

Hexダンプのやり方に関するメモ

文字コードについて調べていて、Hexダンプのやり方を気をつけないと、表記がビッグエンディアンなのか、リトルエンディアンなのか、わからなくなるのでメモ。

xxd(Vim付属)、hexdump、odあたりのコマンドが使われると思うので、その3つについて。

gVimの文字コード周りについてのメモ

gVimが対応する文字コードの一覧を見ようと思ったら、cygwinあたりで

iconv -l

で一覧が表示される。実際に入っているDLLとは異なるが、大体はこれで把握できるはず。

日本語でよく使われそうな文字コードは

$ iconv.exe -l | grep -i "utf\|jis\|jp\|cp932"
CP65001 UTF-8 UTF8
UTF-16 UTF16
UTF-16BE UTF16BE
UNICODEFFFE UTF-16LE UTF16LE
UTF-32 UTF32
UTF-32BE UTF32BE
UTF-32LE UTF32LE
CP65000 UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7
ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220RO
JIS0201 JISX0201-1976 JISX0201.1976-0 JIS_X0201 X0201 CSHALFWIDTHKATAKANA
ISO-IR-87 JIS0208 JISX0208.1983-0 JISX0208.1990-0 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983 JIS_X0208-1990 X0208 CSISO87JISX0208
ISO-IR-159 JIS0212 JISX0212.1990-0 JIS_X0212 JIS_X0212-1990 JIS_X0212.1990-0 X0212 CSISO159JISX02121990
CP51932 EUC-JP EUCJP EUC_JP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
CP932 WINDOWS-31J
ISO-2022-JP ISO2022JP CSISO2022JP
ISO-2022-JP-1
ISO-2022-JP-2 CSISO2022JP2
CP50221 ISO-2022-JP-ESC ISO-2022-JP-MS
EUC-JIS-2004 EUC-JISX0213
SHIFT_JIS-2004 SHIFT_JISX0213
ISO-2022-JP-2004 ISO-2022-JP-3

 参考)UTF-16は、BOMを使ってエンディアンの指定が必要だけど、BOMがない場合はUTF-16BEを暗示するらしい(ウィキペディア)。

また、UTF-16LEとUTF-16BEでは、BOMを付けてはいけないことになっているが、付けた場合はUTF-16のLE/BEの指定付きと同じ符号化になるので、ついていても問題はないのではないかと思ったりする。そのため、おそらく、ファイルの書式(XMLなど)を定める上位のフォーマットで、LE/BEを指定されている場合にはBOMを付けないように、という意味かと思われる。


UnicodeでBOMの有無を確認するには

:set bomb?

BOMをつけるには

:set bomb

BOMを消すには

:set nobomb


一度開いたファイルの文字コードを読み込ませ直すには

:e ++enc=utf-8