31
33

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-08-05

2018-01-04 追記

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

Kobito.232f9r.png

概要

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

Kobito.yC6wid.png

Menubar_と_パン_と_Macでファイル名をコピペすると濁点と半濁点がおかしくなる.png

Menubar_と_untitled_-_Atom_と_Settings_-__Users_matsushimadaisuke_src_github_com_miraitechno_pocketkarte_pocketkarte-mdb3_-_Atom.png

原因

MacOSのファイルシステムであるHFS+が使用している、UTF-8の正規化方法が「NFD」というもので、2文字に分けて正規化されてしまうことが原因。
参考
* UTF-8にもいろいろある - ザリガニが見ていた...。
* MacOSX - Mac OS X の NFD 問題での対策諸々 - Qiita

対策

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

$ 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

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

Kobito.5cNnPH.png

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

Kobito.eYPu1g.png

$ 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

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

31
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
33