「Xamarin.MacからHFS+上のファイル名を取得すると文字コードがおかしい」の版間の差分
ページの作成:「Xamarin.MacからHFS+上のファイル名を取得すると文字コードがおかしい macOSが使っているHFS+の文字コードは「NFDというUTF-8によく...」 |
編集の要約なし |
||
| (同じ利用者による、間の1版が非表示) | |||
| 1行目: | 1行目: | ||
Xamarin. | [[Xamarin.Mac]]から[[HFS+]]上のファイル名を取得すると[[文字コード]]がおかしい。 | ||
[[Mono]]のコンソールアプリでも同様。 | |||
ググると原因はmacOSが使っているHFS+の文字コードは「NFDというUTF-8によく似た独自仕様」であるために発生するらしい。マジでクソ仕様すぎるだろ… | |||
なんと. | なんと.NETでは標準でこれらを判別と変換する機能が用意されている。ググると[[ruby]]なんかでも標準で同様の機能があるとのことなので、このmacOSのクソ仕様はほとんどの言語で考慮されているらしい。 | ||
IsNormalizedメソッドで判別 | IsNormalizedメソッドで判別 | ||
| 12行目: | 13行目: | ||
== 備考 == | == 備考 == | ||
この記事の. | この記事の[[.NET]]とは関係ないが | ||
* | * [[macOS]]標準搭載の「[[rsync]]」はNFD非対応。[[Linux]]なんかに送信すると残念なことになる。 | ||
* | * [[Homebrew]]版の「[[rsync]]」はNFD対応。 | ||
== 関連項目 == | == 関連項目 == | ||
* [[NFD (Normalization Form Canonical Decompression)]] | * [[NFD (Normalization Form Canonical Decompression)]] | ||
[[category: Xamarin.Mac]] | |||