探検


MacはShiftJISを捨てられない。WinはUnicode対応

■ このスレッドは過去ログ倉庫に格納されています
2018/08/27(月) 09:48:20.60ID:ED6nSG670
× WindowsはShiftJISを捨てられない
○ Windows NTは初代からUnicode標準対応だった

そもそもWindowsは世界中で使われてるOSであり、
ShiftJISなんてことはありえないのです。
少し考えればわかることです。
それがわからない時点で馬鹿と断定できます。

さてWindows NTがUnicode標準対応とどういうことでしょうか?
そのまんまWindowsの内部はすべてUnicode(UTF-16)で取り扱われているということです。
またファイルシステムNTFS(exFATも)も同様にUnicodeです。

その証拠に、Unicodeでなければ扱うことができないはずの
絵文字などをファイル名につけることができます。
これはNTFSとOSそのものがUnicode対応でなければ
絶対に不可能なことなのです。


Windowsは互換性に強いためUnicode対応でない古いアプリも
対応しています。すごいですね。偉いですね。
その時にどう扱うかはシステムロケールの設定で変更できます。
2名称未設定
垢版 |
2018/08/27(月) 09:49:24.53ID:lcxUdkVG0
?
2018/08/27(月) 10:23:25.59ID:I5USs1SF0
>>1
        ____
        /     \
     /   ⌒  ⌒ \   何言ってんだこいつ
   /    (●)  (●) \
    |   、" ゙)(__人__)"  )    ___________
   \      。` ⌒゚:j´ ,/ j゙~~| | |             |
__/          \  |__| | |             |
| | /   ,              \n||  | |             |
| | /   /         r.  ( こ) | |             |
| | | ⌒ ーnnn        |\ (⊆ソ .|_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二  _|_|__|_
2018/08/27(月) 10:37:53.58ID:060j4k440
WindowsはShift-JISじゃなくて
cp932だもんな。
zipの圧縮なんかも
2018/08/27(月) 12:20:29.96ID:h7mnEtco0
WindowsはUnicode系APIを使わないとわざわざ内部Unicodeをロケールの標準(日本ならCP932)に変換してアプリに渡すから
古いアプリでUnicodeファイル名を扱えないクソ仕様
波ダッシュを全角チルダにマッピングしてるのもクソ仕様
2018/08/27(月) 12:24:38.83ID:jOuBPrA30
>>5
Macの場合は、Unicode系APIを使わないでUnicodeが扱えるんですか?
ドキュメントが間違ってると言うんですか?

Unicode Utilities

https://developer.apple.com/documentation/coreservices/carbon_core/unicode_utilities

Unicode以外のテキストエンコーディングを使用する多くのAPIは、macOS 10では廃止予定です。
代わりに、FoundationおよびCore Foundationフレームワークで提供されるようなUnicodeを
サポートするAPIを使用してください。詳細については、「文字列プログラミングガイド」を参照してください。
2018/08/27(月) 12:25:37.12ID:jOuBPrA30
Macはすぐ互換性を切り捨てる
2018/08/27(月) 12:54:55.76ID:MwLJUxYR0
MacOS Xで標準で使う文字列クラスのNSStringが
Unicodeだと思うが…

それよりWindowsの改行コードは相変わらずCRLFなの?

Unicodeになったついでに、改行コードもLFに統一してくれてると
やりとりが楽なんだけれども
2018/08/27(月) 12:56:51.04ID:trdmRLSN0
駄目だ、脳が腐ってやがる
10名称未設定
垢版 |
2018/08/27(月) 13:07:53.99ID:UZfx2uhP0
よく分からないスレタイだけど、便乗して1つ言わせて。

mac OSがUTF-8なのは、本当に助かるけど、なんで、
UTF-8じゃなくてUTF-8-MACなんだよ。
ファイル名にパピプペポとか使えないとか(macの中だけで終わるなら使えるけど)、
嫌がらせか。
2018/08/27(月) 13:46:48.33ID:RHfpUH9N0
とりあえずmacOS標準zipをwinで解凍したら日本語文字化けするのはどうにかしてくれ。
どちらが譲歩しても構わんから。
2018/08/27(月) 13:54:35.53ID:h7mnEtco0
CFStringとNSStringはどちらも中身Unicodeだから
OSXで動くアプリはWindowsで言うところのUnicode系APIを使ったもの以外存在しない
2018/08/27(月) 13:55:43.96ID:I5USs1SF0
このスレは俺の知ってる限り、Win板の変な奴が暴れて立てたスレ

なぜWindows10はファイル履歴を取ってくれないのか
http://mevius.5ch.net/test/read.cgi/win/1533791370/

51 名無し~3.EXE sage 2018/08/27(月) 09:46:21.82 ID:wcwqmiVT
>>50
黙れ。透明あぼーんした。
× WindowsはShiftJISを捨てられない
○ Windows NTは初代からUnicode標準対応だった
そもそもWindowsは世界中で使われてるOSであり、ShiftJISなんてことはありえないのです。
少し考えればわかることです。
それがわからない時点で馬鹿と断定できます。
さてWindows NTがUnicode標準対応とどういうことでしょうか?
そのまんまWindowsの内部はすべてUnicode(UTF-16)で取り扱われているということです。
またファイルシステムNTFS(exFATも)も同様にUnicodeです。
その証拠に、Unicodeでなければ扱うことができないはずの絵文字などをファイル名につけることができます。
これはNTFSとOSそのものがUnicode対応でなければ
絶対に不可能なことなのです。
Windowsは互換性に強いためUnicode対応でない古いアプリも
対応しています。すごいですね。偉いですね。
その時にどう扱うかはシステムロケールの設定で変更できます。


52 名無し~3.EXE sage 2018/08/27(月) 09:49:04.39 ID:wcwqmiVT
>>50
お前がデタラメを書いた罰だ
MacはShiftJISを捨てられない。WinはUnicode対応
https://egg.5ch.net/test/read.cgi/mac/1535330900/


うち(Win板)の >>1 が暴れてすみません
2018/08/27(月) 13:57:55.42ID:h7mnEtco0
だからCP932に存在しない文字を使ったファイルを開けたり開けなかったりするのを
アプリごとに心配しなければいけないのは今もWindowsに残る問題で
むしろ「捨てられない」のはWindowsの方
2018/08/27(月) 14:04:20.56ID:DwDT0zSS0
>>14
Macで
Unicode以外のテキストエンコーディングを使用する多くのAPIを使って
ShiftJISを使った時、
cp932に存在しない文字を使ったファイルを
開けられるっていうの?
そんなわけないでしょう
ちょっと常識で考えてほしい

互換性を切り捨ててUnicode以外のテキストエンコーディングを使用する
アプリを動かなくするしか無いだろう。そうすれば
古いアプリは強制的に動かなくなる(Macのだめな所)
2018/08/27(月) 14:13:05.89ID:h7mnEtco0
>>15
違うんだな
標準エンコーディングをUTF-8にしとけばマルチバイト文字系のAPIでそのまま扱えた
わざわざwcharで受けるAPIを作っちゃったからいちいちアプリ単位で切り替えなきゃいけなくなった
ソース書くにしてもTCHARで定義して関数も変数もプリプロセッサで切り替えるとか筋が悪すぎる
2018/08/27(月) 14:18:39.08ID:DwDT0zSS0
>>16
よく読みましょう

Unicode Utilities

https://developer.apple.com/documentation/coreservices/carbon_core/unicode_utilities

Unicode以外のテキストエンコーディングを使用する多くのAPIは、macOS 10では廃止予定です。
代わりに、FoundationおよびCore Foundationフレームワークで提供されるようなUnicodeを
サポートするAPIを使用してください。詳細については、「文字列プログラミングガイド」を参照してください。
2018/08/27(月) 14:19:31.42ID:DwDT0zSS0
MacではUnicodeを使うには、
FoundationおよびCore Foundationフレームワークで提供されるようなUnicodeを
サポートするAPIを使用するしか無いんですよ。
古いアプリは切り捨てられます
2018/08/27(月) 14:23:44.97ID:h7mnEtco0
古いアプリはそもそもClassic MacOSでしか動かないから切り捨てもクソもないんだが
既にPowerPCアプリは起動すらできないし一体いつの話をしているのか
2018/08/27(月) 14:27:37.27ID:h7mnEtco0
ちなみにMacの場合はNSString/CFStringを使わずchar*で受けるAPIの場合
ファイルパスにはUTF-8が渡されるのでいちいちwcharなAPIに切り替える必要は全く無い
そこら辺に落ちてるC入門のサンプルコードでそのままUnicodeファイル名を開くコマンドラインツールが作れる
2018/08/27(月) 14:40:37.59ID:DwDT0zSS0
残念、C言語の関数でも正規化で問題が発生するので
正しく動くとは限らない

https://skyarts.com/blog/jp/skyarts/?p=31678

iOS 10.2.xまでの動作
iOS 10.2.xまでは、以下の様な動作をしていました。

・NSFileManagerクラスに指定するパスはNFDとNFC方式どちらでも使用可能。
ただし、何らかの機能でパスを取得するとNFD方式のパスが返される。
・UIDocumentInteractionController、QLPreviewControllerクラスに指定するURLはNFDとNFC方式どちらでも使用可能。
・C言語のfopen関数等のFoundation API以外のファイルAPIで使用するパスはNFDとNFC方式どちらでも使用可能。

iOS 10.3の動作
iOS 10.3は、以下の様な動作をします。

・NSFileManagerクラスに指定するパスはNFDとNFC方式どちらでも使用可能。
ただし、何らかの機能でパスを取得するとNFD方式のパスが返される。
・UIDocumentInteractionController、QLPreviewControllerクラスに指定するURLはNFD方式のみ。
・C言語のfopen関数等のFoundation API以外のファイルAPIで使用するパスはNFD方式のみ。
2018/08/27(月) 14:50:33.80ID:h7mnEtco0
>>21
いやそれAPFSの移行で一時的に発生してたバグなんだけど...
https://applech2.com/archives/20170720-unicode-runtime-normalization-on-apfs.html

APIにファイルパスを渡す場合はNFDでもNFCでも問題なく受ける
APIでファイルパスを貰う場合はNFDになってるというのがOSX標準の挙動
ただ後者は問題になることもあるけどね>>10
2018/08/27(月) 15:06:26.95ID:4RUQsx3I0
こんな釣りスレでも人がわんさか集まるんだな
Mac板の住人はブラックバスか何か?
24名称未設定
垢版 |
2018/08/27(月) 19:41:50.49ID:aUsH+MRD0
>UTF-8じゃなくてUTF-8-MACなんだよ
これいわゆる「俺用語」というか某ユーティリティの作者が独自につけた名称だから
それが一般的に正しいと思って使うと恥かくから注意な
2018/08/27(月) 20:00:34.88ID:h7mnEtco0
まあNFDなUTF-8とは微妙に仕様が違うからね
2018/08/27(月) 20:01:34.14ID:mc/7NMYM0
>>24
日本語とかネットスラングだって慣用的に使われてて一般化した言葉たくさんあるだろう?
広く使われてて意味が通じりゃいいのさ

要するに、細けぇこたぁいいんだよ!
2018/08/27(月) 20:12:08.45ID:n9RPL+150
Apple独自仕様のUTF-8だからな。
正式名称はなくても、何かしらの名前をつけないと困る
しかし、なんでこう独自仕様なんてやるのか
2018/08/27(月) 20:18:46.68ID:h7mnEtco0
ファイルシステム的には将来の拡張性のためにdecomposedにしときたいのは分かる
decomposedにするにしても標準のNFDに従って互換文字を正規化しちゃうのは不味いのは分かる
まあ根本的にはHFS+の仕様決めるときにUCS-2にしちゃったのが悪いのか
2018/08/27(月) 20:20:10.68ID:mc/7NMYM0
HFS+の仕様がダメなんか
APFSではそこんところ改善されてるの?
2018/08/27(月) 20:35:43.11ID:VtimAHzJ0
お前ら何を言っている…
2018/08/27(月) 20:44:15.58ID:n9RPL+150
アップルが独自拡張したSJISの名前は、MacJapanese
これまめな
2018/08/27(月) 20:56:25.63ID:h7mnEtco0
>>29
APFSは正規化を保持したまま(NFCならNFCのまま)UTF-8で保存する
初期の実装ではNFCで保存するとNFDでアクセスできないみたいな問題があったけど (normalization-sensitive)
今は差異を吸収してどっちでもアクセスできる (normalization-insensitive) ようになってる >>22
詳しくはhttps://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/APFS_Guide/FAQ/FAQ.html#Implementation
2018/08/27(月) 22:08:28.05ID:UZfx2uhP0
>>24
は?

$ iconv --list | grep UTF-8-MAC
UTF-8-MAC UTF8-MAC
iconvもUTF-8-MACだし、
man nkf を参照してもUTF8-MACって書いてある。
OSS界隈ではUTF-8-MACで正しいんだよ。
2018/08/27(月) 22:29:37.29ID:BkIBuP3+0
WinはCP932でメール送信するのやめれ
ISO-2022-jpでだめなときはutf-8にしてくれ
2018/08/27(月) 22:32:49.98ID:mc/7NMYM0
日本人は日本語使うのをやめれ
asciiにしてくれ
2018/08/27(月) 22:42:19.63ID:aUsH+MRD0
iconvとnkfが俺用語を使ってるというのがわからないならこの話は終わりだぞ
詳しく説明してくれてる人がいたというのに
2018/08/27(月) 22:49:09.86ID:mc/7NMYM0
>>36
●その単語が「俺用語」か?否か?の境界が何なのか?
●それは正式名称じゃない、「俺用語」だ!っていちいち食って掛かる必要性は?
●ってかそもそも「俺用語」という言葉の定義は何か?
を明確にしないと話がこじれるだけじゃね
2018/08/27(月) 22:52:39.63ID:mc/7NMYM0
>>37
ちなみに俺としては「そんなこといちいち噛み付いて話をこじれさせんな黙っとけ」派
2018/08/28(火) 07:25:23.30ID:7EItgfkL0
古いMacOSマシンが消えて、APFSが完全に定着するまでUTF8Macの混乱は続く
2018/08/28(火) 16:34:49.94ID:ZD3a+lOW0
これはひどいインターネットですね
2018/08/29(水) 08:15:44.78ID:v/yXia2X0
APFSなんて永遠の未完成
2018/08/29(水) 09:40:45.16ID:TBKNG/bZ0
つねに成長し続けるわけですね
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況