memo」カテゴリーアーカイブ

備忘録

[CPP] error: more than one instance of overloaded function “abs” matches the argument list

C++のソースコードにおいてabs関数でエラーが発生する。

エラー通知の例

続きを読む

macOSにおけるカタカナファイル名の文字化け

Unicodeは濁音(『バ』や『ビ』など)や半濁音(『パ』や『ピ』)を1文字として表現することができます。一方で濁点『 ゙  』(U+3099) と半濁点『 ゚  』 (U+309A) も定義しています。この結果、Unicodeでは『バ』を『ハ』+『 ゙  』の 合成文字 として表現することもできます。

 

  • WindowsやLinuxのファイルシステムは濁音や半濁音をまとめて1文字として扱う NFC (Normalization Form Canonical Compression) を採用しています。
  • MacOSのファイルシステム(HFS+)は本体文字と濁点・半濁点を分離して扱う NFD (Normalization Form Canonical Decompression) を採用しています。俗にいう uft-8-mac です。
  •  

    subversionやscpなど NFC と NFD の差異を考慮していないツールを使うと、Windowsで保存した濁音/半濁音を含むファイル名が文字化けします。場合によってはコマンドが失敗します。

    Mac OS XのSubversionの濁音と半濁音の扱いが不適切

ハイフンやマイナス記号に似た文字

  • ハイフン : 英語などで語と語をつなぐ短い横棒
  • マイナス記号 : 負の数を表す記号

ASCII (ISO646)

グリフ コード 呼び名
- 0x2D ハイフンマイナス

ハイフンとマイナスは記号の意味が異なるが字形(グリフ)が酷似するためASCII文字コードやASCII文字コードを配置したキーボードでは「ハイフンマイナス」として同じものとして取り扱う。

プログラミング言語においても「ハイフンマイナス」を負の値や減算を表す記号として使用している。

続きを読む