Macでファイル名をコピペすると濁点と半濁点がおかしくなる


## 2018-01-04 追記

PDFからコピペした時など、エディタで普通に変換したくなって試していたところ、もっとシンプルにできました。
「選択されたテキストを出力で置き換える」が便利です。

![Kobito.232f9r.png](https://qiita-image-store.s3.amazonaws.com/0/15117/361fe8c0-8e66-c9d5-95b4-14f3af3e146c.png "Kobito.232f9r.png")



## 概要
Macでファイル名をコピペすると濁点と半濁点がおかしくなる。（"パ" -> "ハ" + "半濁点"の２文字になる）
Sublime Textだと表示がおかしいので気づくことができるけど、Atomだと表示はおかしくならないので気づけない。困った。

![Kobito.yC6wid.png](https://qiita-image-store.s3.amazonaws.com/0/15117/9bbde9cf-05a9-5073-993d-3ad44da68d28.png "Kobito.yC6wid.png")


![Menubar_と_パン_と_Macでファイル名をコピペすると濁点と半濁点がおかしくなる.png](https://qiita-image-store.s3.amazonaws.com/0/15117/da0c2fc7-9f21-7923-8392-301809ac856d.png "Menubar_と_パン_と_Macでファイル名をコピペすると濁点と半濁点がおかしくなる.png")


![Menubar_と_untitled_-_Atom_と_Settings_-__Users_matsushimadaisuke_src_github_com_miraitechno_pocketkarte_pocketkarte-mdb3_-_Atom.png](https://qiita-image-store.s3.amazonaws.com/0/15117/d3ddd677-62e0-e36e-357a-e869a7757f74.png "Menubar_と_untitled_-_Atom_と_Settings_-__Users_matsushimadaisuke_src_github_com_miraitechno_pocketkarte_pocketkarte-mdb3_-_Atom.png")


## 原因
MacOSのファイルシステムであるHFS+が使用している、UTF-8の正規化方法が「NFD」というもので、２文字に分けて正規化されてしまうことが原因。
参考
* [UTF-8にもいろいろある - ザリガニが見ていた...。](http://d.hatena.ne.jp/zariganitosh/20131124/utf8_nfd_nfc_bom)
* [MacOSX - Mac OS X の NFD 問題での対策諸々 - Qiita](http://qiita.com/knaka/items/48e1799b56d520af6a09)

## 対策
nkfで```--ic=UTF8-MAC```オプションを指定することで、NFD -> NFCに変換できる。

```bash
$ echo "コピペしたもの" | od -tx1c
0000000    e3  82  b3  e3  83  92  e3  82  9a  e3  83  98  e3  82  9a  e3
          コ  **  **  ヒ  **  **    ゚  **  **  ヘ  **  **    ゚  **  **  し
0000020    81  97  e3  81  9f  e3  82  82  e3  81  ae  0a
          **  **  た  **  **  も  **  **  の  **  **  \n
0000034

$ echo "コピペしたもの" | nkf --ic=UTF8-MAC | od -tx1c
0000000    e3  82  b3  e3  83  94  e3  83  9a  e3  81  97  e3  81  9f  e3
          コ  **  **  ピ  **  **  ペ  **  **  し  **  **  た  **  **  も
0000020    82  82  e3  81  ae  0a
          **  **  の  **  **  \n
0000026
```

### よし、Automatorでサービスを作ってショートカットキーを当てよう。

Automatorで新規サービスを作成する。

![Kobito.9lZVy1.png](https://qiita-image-store.s3.amazonaws.com/0/15117/e6d05ef4-f141-4994-3666-eb05f38b620f.png "Kobito.9lZVy1.png")

nkfに-wオプションをつけないと標準入力に渡されてこなかった。なぜ？

![Kobito.5cNnPH.png](https://qiita-image-store.s3.amazonaws.com/0/15117/299851aa-5f65-1252-a86d-110952a0be00.png "Kobito.5cNnPH.png")


システム環境設定 -> キーボードで作成したサービスのショートカットを設定する

![Kobito.eYPu1g.png](https://qiita-image-store.s3.amazonaws.com/0/15117/6719d056-906b-2167-fee9-eb9298f1976f.png "Kobito.eYPu1g.png")

```bash
$ echo "/Users/matsushimadaisuke/Desktop/コピペしたもの /Users/matsushimadaisuke/Desktop/コピペしたもの" | od -tx1c
0000000    2f  55  73  65  72  73  2f  6d  61  74  73  75  73  68  69  6d
           /   U   s   e   r   s   /   m   a   t   s   u   s   h   i   m
0000020    61  64  61  69  73  75  6b  65  2f  44  65  73  6b  74  6f  70
           a   d   a   i   s   u   k   e   /   D   e   s   k   t   o   p
0000040    2f  e3  82  b3  e3  83  94  e3  83  9a  e3  81  97  e3  81  9f
           /  コ  **  **  ピ  **  **  ペ  **  **  し  **  **  た  **  **
0000060    e3  82  82  e3  81  ae  20  2f  55  73  65  72  73  2f  6d  61
          も  **  **  の  **  **       /   U   s   e   r   s   /   m   a
0000100    74  73  75  73  68  69  6d  61  64  61  69  73  75  6b  65  2f
           t   s   u   s   h   i   m   a   d   a   i   s   u   k   e   /
0000120    44  65  73  6b  74  6f  70  2f  e3  82  b3  e3  83  94  e3  83
           D   e   s   k   t   o   p   /  コ  **  **  ピ  **  **  ペ  **
0000140    9a  e3  81  97  e3  81  9f  e3  82  82  e3  81  ae  0a
          **  し  **  **  た  **  **  も  **  **  の  **  **  \n
0000156
```

あれ？うまくいってるけど、２回コピーされてる、、、