CSV が Excel で文字化けする原因と直し方(Mac で実測)

会計ソフトから落とした CSV を Excel で開いたら、商品名 のはずの列が 蝠刀蜷 になっていた。逆に、自分が Excel で作って送った CSV を「文字化けしてます」と返された。どちらも経験があるのではないでしょうか。

この 2 つ、立場は正反対ですが、詰まっているところは同じです。CSV というファイルには、中身が何の文字コードで書かれているかを記録する欄がありません。

検体は macOS 26.6.2(ビルド 25G83)と Microsoft Excel for Mac 16.107.2 で、自分で作って実際に開いたり保存したりしたものです。

先に結論

困っている場面 やること
もらった CSV を開いたら化けている ダブルクリックをやめる。データ → データ ファイル指定 (Power Query) → テキスト/CSV から開く
自分が渡す CSV を作る 保存形式で「CSV UTF-8」を選ぶ。ただの「CSV(コンマ区切り)」は選ばない
プログラムに読ませる CSV を作る BOM 付きのままでかまいません。読む側で utf-8-sig を指定してもらいます

よく見かける「Shift_JIS で保存し直す」は入れていません。動くことは動くのですが、戻せない代償があります。

CSV には文字コードを書く欄が無い

商品名,数量,金額 から始まる CSV を UTF-8 で保存して、先頭を覗いてみます。

$ xxd -l 12 utf8_nobom.csv
00000000: e595 86e5 9381 e590 8d2c e695            .........,..

e59586 e59381 e5908d が「商品名」を UTF-8 で符号化したバイト列、2c がカンマです。データがいきなり始まっています。ZIP や画像なら先頭にヘッダがあって「これは何か」を名乗るのですが、CSV にはそれがありません。テキストがそのまま置いてあるだけです。

つまり開く側は、書いていないものを推測するしかない。日本語環境の Excel が最初に疑うのは Shift_JIS 系です。UTF-8 のバイト列を Shift_JIS 系として読むと、こうなります。

$ printf '請求書' | iconv -f CP932 -t UTF-8
隲区アよ嶌

実際に Excel for Mac で開いた画面がこれでした。

セルに入るはずの値 表示された値
商品名 / 数量 / 金額 蝠刀蜷 / 謨ー驥 / 驥鷹。
請求書 隲区アよ嶌
髙橋商店 鬮呎ゥ句膚蠎
①番テーブル 竭逡ェ繝シ繝悶Ν

先頭が 蝠・隲・繝・縺・謨・鬮 あたりで始まっていたら、UTF-8 を Shift_JIS 系として読んだ化け方です。ひらがなの多い言葉は 縺、カタカナは 繝 がよく顔を出します。

BOM が付いていると化けない

ところが、同じ内容でも化けない場合があります。先頭に 3 バイトだけ足したものです。

$ xxd -l 12 utf8_bom.csv
00000000: efbb bfe5 9586 e593 81e5 908d            ............

この ef bb bf が BOM(Byte Order Mark)で、「以下は UTF-8 です」という目印になります。Excel はこれを見て判断を変えます。4 通りの検体を、Finder のダブルクリックと同じ経路で開いた結果です。

検体 結果
UTF-8(BOM なし) 化ける
UTF-8(BOM 付き) 正しく開く
Shift_JIS(CP932) 正しく開く
UTF-16LE(BOM 付き・カンマ区切り) 文字は正しいが、全部 A 列の 1 セルに入る

Microsoft も公式のサポートページで「BOM 付きで保存されていれば UTF-8 の CSV は普通に開ける」と書いています。BOM が唯一の手がかりだ、というのが CSV の文字化けの正体です。

なお file -I は BOM の有無を区別してくれません。BOM あり・なしのどちらも charset=utf-8 と答えます。確かめたいときは上のように xxd -l 3 で先頭 3 バイトを直接見るのが確実です。

もらった CSV が化けているとき

配布元に「BOM 付きで出してください」と言えれば一番早いのですが、たいていそうもいきません。ダブルクリックで開くのをやめて、Excel 側で読み方を指定します。

Mac だと データ → データ ファイル指定 (Power Query) → テキスト/CSV が一番楽でした。

  1. Excel を開く
  2. データタブ → 左端の「データ ファイル指定 (Power Query)」→「テキスト/CSV」
  3. 参照からファイルを選ぶ
  4. プレビューを確認して「読み込む」

BOM なしの UTF-8 を食わせたところ、プレビューの「元のファイル」は 65001: Unicode (UTF-8)、「区切り記号」は コンマ と、どちらも自動で当たっていました。髙橋商店 も ①番テーブル も化けていません。こちらから指定するものが何もない。

同じドロップダウンに テキストから (レガシ) もあって、こちらは「テキスト ファイル ウィザード」が開きます。ファイル → インポート → CSV ファイルと辿っても同じウィザードでした。入口が 2 つあるだけで中身は同じです。ただ、こちらは自動判定してくれません。

  • 1/3 の画面の「元のファイル:」の既定が Japanese (Mac OS)。これが化ける直接の理由です。Unicode (UTF-8) に変えます
  • 2/3 の画面の区切り文字の既定がタブ。ここを「コンマ」にしないと、文字は読めるのに全部が 1 列に入ります

私は最初この 2 つ目を飛ばして、せっかく綺麗に読めた文字列が丸ごと A 列に詰まったのを見ました。Power Query のほうが確実なのは、この 2 か所を自分で当てにいかなくて済むからです。

Power Query が使えるのは、Microsoft の案内ではバージョン 16.69 以降かつ Microsoft 365 のサブスクリプションという条件付きです。手元の 16.107.2 では問題なく出ました。条件を満たさない環境ではレガシ側が受け皿になります。

Excel にこだわらないなら、LibreOffice は BOM なしの UTF-8 をそのまま読めます。文字コードを何も指定せずに開いて正しく表示されたので、中身を確認したいだけならこれが早いです。

自分が渡す CSV を作るとき

こちらのほうが厄介でした。Excel for Mac で「CSV(コンマ区切り)」を選んで保存すると、UTF-8 では書かれません。保存されたファイルの先頭はこうです。

$ xxd -l 12 out_csv.csv
00000000: 8fa4 9569 96bc 2c90 9497 ca2c            ...i..,....,

BOM はなく、8fa4 9569 96bc が「商品名」。Shift_JIS 系のバイト列です。ではこれを CP932 として読めるかというと、読めません。

$ iconv -f CP932 -t UTF-8 out_csv.csv
商品名,数量,金額
請求書,1,1200
_橋商店,3,4500
iconv: iconv(): Illegal byte sequence

2 か所おかしいところがあります。

1 つは 3 行目の _橋商店。元は 髙橋商店 でした。髙(はしごだか)が消えて、アンダースコアになっています。

もう 1 つは最後で止まっていること。① のところで不正なバイト列だと言われています。Excel が書いた ① は 8540 でしたが、CP932 の ① は 8740 です。別のバイトが入っている。

正体は Mac OS Japanese でした。Foundation の kCFStringEncodingMacJapanese で復号すると、①番テーブル まで含めて最後まで素直に読めます。同じ「Shift_JIS 系」と呼ばれていても、Windows の CP932 とは持っている文字が違うのです。

表現できない文字がどうなるかを、もう少し意地悪な検体で確かめました。

元の値 保存後
𠮷野家 __野家
絵文字😀 絵文字__
森鷗外 森_外

置き換わっているのはファイルの中身だけです。画面上のセルには元の文字が残っているので、保存した本人の目には何も起きていないように見えます。

警告が出ないわけではありません。CSV を開いている間、Excel は本文の上に「データ損失の可能性 このブックをコンマ区切り (.csv) 形式で保存すると、一部の機能が失われる可能性があります」というバーを出しています。ただしこれが言っているのは、書式や複数シートを CSV では持てないという形式一般の話で、髙 が _ になることは何も告げません。読み流してしまう種類の警告です。渡した先で初めて「名前が _ になってます」と言われることになります。

Excel for Mac で人に渡す CSV を作るなら、保存形式は「CSV UTF-8」を選んでください。こちらは先頭に efbbbf が付いた UTF-8 で保存されます。

BOM は誰のために付いているのか

その BOM が、渡す先によっては邪魔になります。人ではなくプログラムに読ませたとき。Python で普通に読むとこうです。

$ python3 -c "
import csv, io
raw = open('utf8_bom.csv', encoding='utf-8').read()
row = next(csv.DictReader(io.StringIO(raw)))
print(list(row.keys()))
print(row['商品名'])
"
['\ufeff商品名', '数量', '金額']
Traceback (most recent call last):
  File "<string>", line 6, in <module>
KeyError: '商品名'

先頭の列名が 商品名 ではなく \ufeff商品名 になっています。\ufeff が BOM で、1 文字目として列名に食い込んだ形です。厄介なのは、この文字が幅を持たないこと。Python は repr で見せてくれますが、print() でそのまま画面に出すと見た目は 商品名 のままです。KeyError を見て「列名は合っているのに」としばらく悩むことになります。

これは読む側の設定ひとつで消えます。encoding='utf-8' を encoding='utf-8-sig' に変えるだけ。sig 付きのほうは BOM があれば読み飛ばし、無ければそのまま読むので、BOM 付きと BOM なしを同じコードで扱えます。手元で両方通したところ、どちらも 商品名 が取れました。

つまり「Excel を取るかプログラムを取るか」という板挟みではないのですね。BOM が働いているのはダブルクリックで開いたときの一瞬だけで、Excel の推測に手がかりを渡している。前の節の Power Query 経路も、ウィザードで文字コードを指定する経路も、BOM があろうとなかろうと同じように開きます。

なので、出す側は BOM を付けておく。受け取る側はそれぞれの流儀で読む。それで両方立ちます。本当に困るのは、受け取り先のコードが utf-8 決め打ちで、しかもそこを直せないときだけです。

おまけ:よく見かけるけれど勧めない対処

まず、Shift_JIS で保存し直すという手。上位に出てくる記事の多くがこれを勧めていて、Excel が Shift_JIS 系を素直に読むのは事実なので、動くことは動きます。ただし片道切符です。CP932 に変換できない文字を並べてみます。

文字 CP932
髙 ① ㈱ Ⅲ 斎 変換できる
鷗(鷗外の鷗) 変換できない
𠮷(つちよし) 変換できない
𩸽(ほっけ) 変換できない
😀 変換できない

人名や店名を含む CSV でこれをやると、変換できなかった文字がその場で失われます。あとから UTF-8 に戻しても帰ってきません。しかも Mac 経由だと 髙 まで落ちる(前の節のとおり)ので、Windows の記事に書いてある「Shift_JIS なら大丈夫」がそのまま通用しない。

もう一つ、UTF-16 で保存し直すという手もよく見ます。試したところ、文字化けは確かに直りました。ただし 商品名,数量,金額 が丸ごと A1 セルに入ります。文字は読めるのに表になっていない、という中途半端なところに着地しました。カンマが区切りとして扱われていないわけですが、なぜそうなるのかまでは確かめていません(タブ区切りの UTF-16 で試していないので、そこは断定を避けておきます)。表として使いたいなら、この手は回り道です。

ついでに、化けているように見えて実は別物のこともあります。引用符の中にカンマや改行が入っている CSV は、Excel はきちんと解釈しました。"カンマ, あり" は 1 セルに収まり、セル内改行も改行のまま残ります。列がずれているだけなら文字コードの問題ではないので、先に区切り文字を疑うほうが早道です。

さいごに

開くときはダブルクリックをやめて Power Query から、渡すときは「CSV UTF-8」で保存。実務で必要なのはこの 2 つだけです。

それにしても、と思うのです。ZIP がファイル名の文字コードを宣言する 1 ビットを後から継ぎ足したように、CSV も BOM という後付けの目印で何とかしのいでいる。どちらも、文字コードが 1 つに決まっていなかった時代に生まれた形式で、後から世界が広がった分のつじつまを端っこで合わせている。髙 が _ に変わったときも、Excel は「一部の機能が失われる可能性があります」としか言いません。嘘はついていないのですが、いま消えたのがその 1 文字だとは教えてくれない。警告の粒度というのは難しいものだな、と思いながら見ていました。

余談ですが、同じ原因でこの記事を書いていて WordPressで 「公開に失敗しました。 データベース内の投稿を更新できませんでした。」とでてハマ りました…

ZIP のファイル名が化ける話は別に書いたので、そちらで困っている方はどうぞ

ZIP を解凍するとファイル名が文字化けする原因と直し方(Mac / Windows)

Mac で圧縮した zip を Windows の人に送ったら「ファイル名が 隲区アよ嶌_2026蟷エ8譛�.txt になってる」と返ってきた。逆に、Windows の人からもらった zip を Mac で開こうとしたら、解凍そのものが Illegal byte sequence で止まった。どちらもよくある話ではないでしょうか。

この 2 つ、症状は正反対に見えますが、原因は同じところにあります。ZIP ファイルの中の、たった 1 ビットです。

検体は macOS 26.5.2(ビルド 25F84)で自分で作って、バイト列まで確かめました。

続きを読む ZIP を解凍するとファイル名が文字化けする原因と直し方(Mac / Windows)

WindowsでUDP通信・ポート確認をする方法(PowerShell/ncat)

「WindowsでUDP通信を試したいのに、telnetもTest-NetConnectionも使えない」。結論から言うと、Windows標準のtelnetクライアントもTest-NetConnectionもTCP専用で、UDPには使えません。UDPを送受信するには、PowerShellのUdpClientか、ncat(Nmapに含まれるnetcat互換ツール)を使います。

※動作環境について:このページのコマンドは Windows 11(build 26200)+ Windows PowerShell 5.1 で動作を確認しています(2026-07-09)。Windows 10 や PowerShell 7 でも、使っているのは共通の .NET(UdpClient)と NetTCPIP モジュール(Get-NetUDPEndpoint など)なので同じように動くはずですが、表示のこまかな差は環境によって出ることがあります。

結論:WindowsでUDPを試す方法

続きを読む WindowsでUDP通信・ポート確認をする方法(PowerShell/ncat)

[.Net Framework][C#] ListViewで列を自動リサイズする

カラム長を最低幅に自動調整

カラムの文字数や要素の文字数が表示できる最低限のサイズに自動調整するにはListViewの以下のメソッドを使います。

ListView#AutoResizeColumns(スタイル指定)
すべてのカラムに対して適用する。
AutoResizeColumn(カラムインデックス,スタイル指定)
特定のカラムに対して適用する。

提供されているスタイルは2種類です。

ColumnHeaderAutoResizeStyle.HeaderSize
列のヘッダ文字列が最低限表示できるサイズに自動調整する。
ColumnHeaderAutoResizeStyle.ColumnContent
現在の列に含まれる全ての要素(ヘッダ除く)が最低限表示できるサイズに自動調整する。

例:

listView.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
[/sharp]

<h2>カラム長を最大幅に自動調整</h2>

自動でリストの幅いっぱいのサイズまで埋めた長さに設定する方法は標準で提供されていませんが、
次のように実装することで実現できます。

[csharp]
using System.Windows.Forms;

class FillableListView: ListView
{
        public FillableListView():base(){
            this.ClientSizeChanged += (sender, args) =>
                handleFillColumn();
            // 利用例:最初の列を自動調整する。
            this.AutoFillColumn = 0;
        }

<pre><code>    private int _autoFillColumn = -1;
    /// &lt;summary&gt;
    /// リストの空列を補うよう自動調整を行うカラム番号(0~)。
    /// 負の値やカラム数を超える場合は調整を行わない。
    /// &lt;/summary&gt;
    public int AutoFillColumn
    {
        get { return this._autoFillColumn; }
        set
        {
            this._autoFillColumn = value;
            this.handleFillColumn();
        }
    }

    private void handleFillColumn()
    {
        System.Diagnostics.Debug.Print("fillcolumn:{0},{1}",this._autoFillColumn , this.Columns.Count);
            if (this._autoFillColumn &gt;= 0 &amp;&amp; this._autoFillColumn &lt; this.Columns.Count)
                fillColumnWidth(this, this._autoFillColumn);
    }
    /// &lt;summary&gt;
    /// リストビューの特定のカラム幅を余白を埋める幅に調整する。
    /// &lt;/summary&gt;
    /// &lt;param name="listView"&gt;&lt;/param&gt;
    /// &lt;param name="index"&gt;&lt;/param&gt;
    private static void fillColumnWidth(ListView listView, int index)
    {
        int width = listView.ClientRectangle.Width;
        for (int i = 0; i &lt; listView.Columns.Count; i++)
        {
            if (i == index) { continue; }
            width -= listView.Columns[i].Width;
        }
        listView.BeginUpdate();
        listView.Columns[index].Width = Math.Max(width, 0);
        listView.ResumeLayout(true);
        listView.EndUpdate();
    }
</code></pre>

}

実装時の要点

キモは次の3つ。

  • リサイズへの対応はClientSizeChangedイベントで更新する。
  • カラム長はListView#Widthでなくクライアント領域(listView.ClientRectangle.Width)で計算する。
  • ListView#BeginUpdate()からListView#EndUpdate()の間でリサイズ変更を適用する。

の3つです。
これを守っていればどのように実装しても大丈夫です。

最後に

今回は自前での実装を行いましたが、GPLライセンスで問題なければObjectListViewというライブラリを使うと幸せになるかもしれません。

Cygwinでも apt-get (apt-cyg) を使う

apt-cyg をインストールすることでパッケージインストールをCUIで行うことができるようになります。
 
apt-cyg プロジェクト
http://code.google.com/p/apt-cyg/
 
■インストール手順:

svn –force export http://apt-cyg.googlecode.com/svn/trunk/ /usr/local/bin/
chmod +x /usr/local/bin/apt-cyg

 

■使い方:

パッケージをインストールする。
apt-cyg install <package names>
 
パッケージを削除する。
apt-cyg remove <package names>
 
setup.ini を更新する。
apt-cyg update
 
インストールされているパッケージの一覧を表示する。
apt-cyg show
 
パターン(複数可)に一致するパッケージを探す。
apt-cyg find <pattern(s)>
 
パターン(複数可)に一致するパッケージの情報を表示する。
apt-cyg describe <pattern(s)>
 
指定したコマンドやファイルを含むパッケージを見つけ出す。
apt-cyg packageof <commands or files>

Windows 用 Android ドライバのまとめ

Windows で Android SDK (adbなど)を使うための各種Android端末用 android_winusb.inf 設定一覧です。
SDKを展開したフォルダにあるusb_driver/android_winsub.inf に記述されている[Google.NTamd64]と[Google.NTx86]の両方に同じ設定を付け足してください。
 
設定適用済みandroid_winusb.inf

; HTC Dream
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C01
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01
%SingleBootLoaderInterface% = USB_Install, USB\VID_0BB4&PID_0FFF
; HTC Magic
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C03&MI_01
;
;Moto Sholes
%SingleAdbInterface% = USB_Install, USB\VID_22B8&PID_41DB
%CompositeAdbInterface% = USB_Install, USB\VID_22B8&PID_41DB&MI_01
;
;Google NexusOne
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01
 
; Xperia X10
%SingleAdbInterface% = USB_Install, USB\VID_0FCE&PID_D12E
%CompositeAdbInterface% = USB_Install, USB\VID_0FCE&PID_D12E&MI_01
 
; HTC Desire
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C87
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C87&MI_01
 
; HTC DesireHD
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0CA2
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0CA2&MI_01
 
; Samsung galaxy (galaxy S, galaxy Tab)(*)
%CompositeAdbInterface% = USB_Install, USB\VID_04E8&PID_6640&MI_00
%SingleBootLoaderInterface% = USB_Install, USB\VID_04E8&PID_6640&MI_04
 
; SHARP IS01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9337&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9336&MI_05
 
; SHARP JN-DK01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9353&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9352&MI_05
%SingleBootLoaderInterface% = USB_Install, USB\VID_04DD&PID_9373
 
; SHARP SH-10B(LYNX)(*)
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9334&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9333&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9332&MI_05
 
; SHARP SH-03C(LYNX 3D)(*)
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9393&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9392&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_9391&MI_05
 
; SHARP IS03
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_939C&MI_05
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_939A&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_939B&MI_01
 
; SHARP 003SH(Galapagos)
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_93B5&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_93B4&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_04DD&PID_93B3&MI_05
 
; Toshiba T-01C(REGZA)
; http://www.fmworld.net/product/phone/sp/android/develop/t-01c_usb/download.html
%CompositeAdbInterface% = USB_Install, USB\VID_0930&PID_0D85&MI_01

(*)galaxy, SH-10B等についてはandroid_winusb.infへの記述だけではPCで認識できません。下記サイトからそれぞれの専用ドライバをインストールし、端末設定の「アプリケーション→開発」からUSBデバッグを有効にすることでadbなどから認識されるようになります。
 
– galaxy S, galaxy Tab
(Samsung Kies Installer に同梱)
http://jp.samsungmobile.com/pc/lineup/SC-02Bdownload.html
 
– SH-10B(LYNX)
https://sh-dev.sharp.co.jp/android/modules/driver/#sh_10b
 
– SH-03B(LYNX 3D)
https://sh-dev.sharp.co.jp/android/modules/driver/#sh_03c
 
参考:
– ADB + Samsung Galaxy(stack overflow)
 
– Samsung Galaxy S (Vibrant) not debugging(App Inventor Coffee Shop)
– SH Developers Square(sharp) – シャープ製Android携帯のADBドライバ配布サイト。
 対応端末: SH-03C, IS03, SH-10B(LYNX), IS01

_except_handler4_common が msvcrt.dll から見つかりませんでした

ある日メッセンジャーを立ち上げようとしたところいきなり次の警告ダイアログが出るようになった。


———————–
MsnMsgr.Exe – エントリ ポイントが見つかりません


———————–
プロシージャ エントリ ポイント _except_handler4_common がダイナミック リンク ライブラリ msvcrt.dll から見つかりませんでした。


———————–

OKを押して閉じると問題なくそのまま利用でき, Firefox 3.5 を起動しようとしても同じダイアログがでる。支障がないとはいえ毎回ダイアログがでるのは鬱陶しいので調べてみたところ、Windows Vista 以降にしかないはずの dwmapi.dll が Windows XP 環境にあると発生するらしい。
 

C:\windows\system32\dwmapi.dll

を適当にリネームしたところダイアログが出なくなったのでそのまま削除して問題解決。
 
参考:
msvcrt.dll error message when starting Firefox 3.5

Windowsで「ファイル名を指定して実行」をランチャー化するカスタマイズ方法と起動コマンド一覧

http://it.kndb.jp/entry/show/id/146
 
4年くらい前から、この記事と同じようにファイル名を指定して実行(Windows+R)をランチャーとして使っています。
いちいちランチャーをインストールするより Windows の標準機能を使おうということで始めたもののこれが存外に便利。
「ファイル名を指定して実行」に慣れると Windows標準のコマンドも覚えられるし、引数対応のプログラムもフル活用できて一石二鳥、です。
 
既存のコマンドとかぶらないよう、自分ルールで頭に記号をつけたものをショートカットで作って使っています。
 
・ “+” から始まるものはディレクトリ(+bin でランチャー用ディレクトリ, +home でマイドキュメントなど)
・”@” から始まるものはプログラム短縮名(@f で firefox, @i で iexplorer(Internet Explorer), @e で Eclipse, @p で PuTTY, @n でテキストエディタ, @fz で FileZilla, @ooo で OpenOffice.org などなど)
 
とくにキーボード派にオススメです。おためしあれ。

Windows SID とユーザ名を名前解決(変換)する

Windows SID(S-1-5-21-〜などから始まる数字の羅列)を Windows のログイン名に相互変換するには、こちらで配布されているLookupSID(looksid.exe)が便利です。
 
使い方は次のとおりです。

ログイン名→SID
C:> LookSid /A tanaka
S-1-5-XX-XXXXXXXXXXXXXX-XXXXXXXXXXX-XXXXXXXXXXX-XXXX
SID→ログイン名
C:> LookSid /S S-1-5-XX-XXXXXXXXXXXXXX-XXXXXXXXXXX-XXXXXXXXXXX-XXXX
tanaka

 
参考:
うにょうにょ本舗(開発/配布元)

rsync – file has vanished

最終更新

2026年7月、内容を全面的に書き直しました。この記事はもともと2009年に Cygwin 版 rsync の文字コード問題について書いたものですが、その問題はすでに解消されているため、現在この警告で検索して来られる方の悩み(Linux などでの code 24)に合わせて作り直しています。

rsync でバックアップや同期を実行したときに、

file has vanished: "/path/to/source/some-file.tmp"
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1356) [sender=3.4.4]

という警告が出て、終了コードが 24 になることがあります。

続きを読む rsync – file has vanished