本ページは、過去に取り上げたHFS+関連の記事をまとめたものです。
内容は当時のものですので、ご注意下さい。
[98/02/05]
Primary scriptを変更している場合も、Language
Kitの場合と同様の問題があると思われます。
US版システムのPrimary scriptを変更したり、Language
Kitを使用して日本語環境で使用している方も多いと思います。現時点ではMac
OS 8.1のCD-ROMは入手できませんので、HFS+形式のボリュームを使用している方はDisk
Tools PPCの使用には十分な注意が必要だと思います。
なお、訳には自信がありませんのでなるべく原文をお読み下さい。訳の誤りがありましたらご指摘ください。
[98/02/18]
![]() |
HFS+では、「色」と「診」という名称のファイルを同一フォルダに作成できる。しかし、HFSでは「診」という名称のファイルがすでに存在する場合、「色」という名称のファイルを作成することができない。 |
このため、たとえばHFS+ボリュームからHFSボリュームへファイルをコピーする場合、HFS+では異なる名称のファイルと認識されていたファイルが同一名称と認識され、予期せぬ結果(ファイルの上書きなど)を招く可能性がありますので、ご注意を。
[98/03/18]
| [注意]
DiskTools PPCについて (中略) 本ページの2/5の記事でも書いたように、Disk Tools PPCはPrimary scriptがRomanの場合の使用を想定しており、Disk Tools PPCでコンピュータを起動してRoman以外のscript(日本語システムの場合も含む)で作成されたHFS+ボリュームのファイル操作を行うと、最悪の場合、ファイルを消失することになります。 |
HFS+ボリュームを使用されている方は、ご注意ください。すでにMac
OS 8.1(J)のCD-ROMも入手できるようなので、これを利用されたほうが良いでしょう。
[98/03/24]
[98/03/25]
[98/03/26]
[98/03/27]
![]() |
![]() |
なぜか片方のファイルには名前がないのですが、さらに不思議なことに、このフォルダの「情報を見る」と、66個の項目を含んでいると表示されます。
この項目数と容量は、システムフォルダと同じです。
![]() |
![]() |
他のいくつかの状況(FinderPopのContents表示等)から、この「名前の無いフォルダ」は「システムフォルダ自体」を差していると推測されます。
(つまり、システムフォルダが無限ループしている)
ディスクの管理情報か何かが破壊されているような気がするのですが、Disk
First Aidで検証してもエラーは発見できません。
(Norton UtilitiesはHFS+未対応のため使用できません)
この「名前のないフォルダ」は、「Romanスクリプトで起動し、システムフォルダをHFS+へコピー」した段階では作成されません。
そのHFS+ボリュームからの起動を試みて、文字化けアラートが表示された後、別のボリュームから起動して当該HFS+ボリュームを参照すると、作成されています。
当該HFS+ボリュームから起動しようとした際に、管理情報が破壊されるのかもしれません。
以前にも書きましたように、Mac OS 8.1(J)のRead
Meファイルには、日本語以外のシステムで起動した際にHFS+のボリュームへファイルを正しくコピーすることができない場合があると記載されていますが、ファイルの名前が不正になるだけで内容には問題がないとしか記載されていません。
関連は不明ですが、異なるスクリプト間でのコピーが、ファイル名の問題とは別の問題を起こしているのかもしれません。
とりあえず、調査を続行してみます。
HFS+について、何かお気づきのことがありましたら、お知らせください。
[98/03/30]
[98/03/31]
| 私の状態は、3/27にPoseidonさんのホームページ上に掲載されているのとまったく同じでした。 それらのファイルをどういじっても解決しなかったため、私はフォーマットし、(性懲りも無くHFS+で(^^;))現在は何とか動いてます。 私はトラブルの為、Shiftキーを押したまま、機能拡張を読み込まずに起動したために、そういった状態になったのではないかと思われます。 一度そうなってしまったら、FileBuddyやResEditを使用しても、ファイルの属性も変更できないうえ、一時的に移動して削除などといったこともできず、何をやってもダメ。 Untoucheableな存在になってしまって、かなり困りました。 正しい環境でDeskTopの再構築などすれば直るのかどうか疑問に思えた為、私はInitializeからやり直してしまいました。 |
書いていませんでしたが、私の環境で発生した「名前のないフォルダ」も削除などができませんでした(ゴミ箱へドラッグするとFinderが落ち、デスクトップへドラッグすると「タイプ-110のエラー」になる)。
やはり、Japanese以外のスクリプト上で日本語のファイルを操作するのは危険なようですね。
コンフリクト等の問題が発生した時、Shiftキーを押したままの起動を行うのはごく当たり前の対処法ですが、それが別の新たな問題を起こす原因となってしまうのであれば困ったことです。
また、Disk First Aidではエラーが発見できないのですが、何らかの異常があることは間違いないと思われますので、Norton
Utilitiesに早くHFS+に完全対応してもらいたいと思います。
(Nortonでも問題が発見できるとは限りませんが)
どこに異常があるのかは分かりませんが、以前にも書きましたようにディスクの管理情報が壊れている可能性もありますので、そのまま使用を続けると、被害が拡大する可能性もないとは言い切れません。
このような現象が発生した場合は、重要なデータを別のディスクに退避し、ディスクの初期化を行った方が良いでしょうね。
引き続き、情報をお待ちしています。
[98/03/31] (2)
| (1) Japaneseスクリプトで起動し、 HFSボリュームに「テスト」と「test」の2個のファイルを作成。 | ![]() |
| (2) Romanスクリプトで再起動し、上記のファイルをHFS+ボリュームへコピーする。 | ![]() |
| (3) Japaneseスクリプトで再起動し、Finderの「編集」-「複製」で「テスト」と「test」をそれぞれ複製する。 | ![]() |
| (4) 「testのコピー」の名前を「test」に変更しようとすると、当然「すでにある」というアラートが出て変更できない。 | ![]() |
| (5) 次に、「テストのコピー」の名前を「テスト」に変更すると、アラートは出ず、「テスト」という同じ名前のファイルが同一の場所に共存する。 | ![]() |
| (6)
「ファイル検索」で「名前がテストの項目」を検索。確かに同じ名前であることが分かる。 |
![]() |
【推測されること】
これは、「テスト」はRomanスクリプト上で
と文字化けしますので、上記(2)の手順でHFS+へコピーされたファイルの名称はUnicodeの
に変換されてカタログに記録されていて、手順(5)でJapaneseスクリプト上で変更した後の名前は、そのままUnicodeの「テスト」に変換されてカタログに記録されていることが推測されます。
つまり、どちらも「テスト」に見えていますが、カタログ上は「テスト」と「
」という別の名称のファイルであるので、同一の場所に共存できるのではないでしょうか?
「ファイル検索」は、カタログに記録されたUnicodeのファイル名ではなく、Shift-JISコードに変更された後の名前で検索しているので、どちらも同じ名前と判断するのでしょう。
Romanスクリプト上でHFS+にコピーしたシステムフォルダから起動できない理由も同様と考えられます。
Romanスクリプト上で「機能拡張」が文字化けした状態でカタログに記録されたため、起動プロセスで「機能拡張」という名称のフォルダが見つからず、その結果「Appearance機能拡張(AppearanceLib)」が見つからなかったため、起動できなかったものと推測されます。
また、Nagisa's
Land!さんが、「同じ名前の初期設定ファイルが2つ存在する」という現象を報告されていましたが、HFS+上の日本語名の初期設定ファイルであること、およびNagisaさんはRomanスクリプトでUSシステムを使用されていること、HFS/HFS+が混在していた時期があること等から、本現象と同じか近い現象である可能性もあると思います。
Mac OS 8.1(J)のドキュメントには、日本語版以外のOS(機能拡張を使用停止している場合も含む)で起動している場合、HFS+へファイルをコピーする時はファイル名を英数字文字だけに変更してからコピーを行うようにと指示していますが、システム関連のファイルやアプリケーションが作成するファイルの場合は、勝手に名前を変更することもできませんので、Romanスクリプトでの起動時は、HFS+に対して日本語名のファイルの操作は止めておいたほうが無難でしょう。
なお、上記手順による検証は、私の環境では100%再現しますが、もし検証されてみた方がいらっしゃいましたら、詳しい条件と再現したかどうかをお知らせください。
[98/04/02]

[98/04/04]
| 乱暴なやり方ですがResEditやNorton
Disk Editor等を使用しても削除出来ないファイルはMicrosoft
Excelの様なOSを無視する傲慢なアプリケーションで削除出来ますよ。 バージョンにより全く手順が違いますが。 ちなみに現在のバージョン5.0はExcelのファイル検索からすべてのファイルを対象に目的のファイルを見つけ削除出来ます。 しかし、文字化けした場合特にHFS+の問題の場合は、予めマクロを作成し、ファインダーからファイル名をコピーしてファイル削除する方が正確で簡単かも知れません。 勿論アプリケーションが起動出来る環境であればの話ですが。 あとMacWORDもファイル操作が出来たと記憶しています。 |
残念ながら(?)、私はExcelもMacWORDも使用していない(仕事でWindows版のExcelは使ってますが)ので確認できないのですが、そのようなファイルでも削除する方法はあるみたいですね。
何か出来るアプリケーションがあれば試してみます。
ただし、以前にも書きましたが、私の環境で発生した「名前の無いフォルダ」は、単に消せないだけでなく、実体はシステムフォルダそのものを指しているようなので、ファイルの管理情報が壊れている可能性もあると推測しています。こういう場合は強引に削除しないほうが良いかもしれません。
どこかが壊れているとすると、原因を特定するのは困難だと思われますが、少なくとも私の環境では100%再現するため、「たまたまどこかの情報が壊れた」というレベルの話ではないことは確かだと思います。
引き続き情報をお待ちしています。
[98/04/05]
| 私もHFS+を使っていることから、この記事に興味を持ち、自分なりに実験をしたり考えたりしててみました。 まず、POSEIDONさんのいうように、HFS+のカタログに、文字化け状態と、正常状態の二つのファイルが出来ているのだと思います。つまり、”テスト”のファイルは、テストとEeEXEg(アクセント記号は省略、というか表記しようとすると”テスト”になってしまう)となっているのでしょう。この二つを日本語フォントで表示すれば、OSが、何も変換等の処理を行ってくれなくとも”テスト”と表示されるでしょう。 ここで、HFS+は、Unicodeでファイルを管理していますが、OSとHFS+では、SHIFT-JISを使用しています。この変換を行うのは機能拡張フォルダにあるText Encoding Converterが行っています(正確にはその中のUnicodeConverter)。これは、AppearanceLib同様に、shiftを押しながらの起動でも読み込まれるようです。ただ、無理やりフォルダから出しても起動できて、HFS+がマウントできないだけでした。 で、Text Encoding Converterは、変換の際にスクリプトコードを参照して、1バイトづつ変換するか、2バイトづつにするか決めているようです。ですから、shiftを押しながら起動したときは、スクリプトコードが00(つまりUSA,またはRoman)なので、”テスト”(”EeEXEg”)をコピーするとき、Unicodeの変換で、”EeEXEg”というUnicodeになってしまったのではないでしょうか。 |
佐藤さんも、私と同じお考えのようですね。「テスト」はShift-JISコードで「8365
8358 8367」ですが、これをJapaneseスクリプト上でHFS+へコピーすると、Unicodeの「テスト」(30c6
30b9 30c8)に変換されると思います。
ところが、Romanスクリプト上では日本語文字(Shift-JIS)だと認識されませんので、文字化けして
と表示されてしまいます。この状態でHFS+へコピーすると、Unicodeの
(00c9
0065 00c9 0058 00c9 0067)と変換されているのではないかと推測されます。
Finderでの表示では、UnicodeからShift-JIS/ASCIIコードへ変換されているので、Unicodeの「テスト」はそのままShift-JISの「テスト」へ変換されていて、Unicodeの「
」はASCIIコードの「
」に変換されるのですが、これはShift-JISの「テスト」と同じ値ですから、日本語フォントでは「テスト」と表示されていると思われます。
Shiftキーを押したまま起動する場合のことを少し補足しておきますと、Mac
OS 8ではAppearance機能拡張が、Mac OS 8.1ではさらにText
Encoding Converterが必須となり、これらの機能拡張が無いと起動できなくなる場合があります。
(日本語システムの起動ボリュームがHFS+の場合、Text
Encoding Converterが無いと起動できません。)
このため、Shiftキーを押したまま機能拡張を読み込まずに起動した場合でも、これらの機能拡張は読み込まれます。
| 初期設定が二つできるのも、(初期設定ファイルの名前を”テスト”と仮定すると、)コピーの際には、”EeEXEg”というファイルが作成され、アプリケーションは、”テスト”というファイルが見つからないので、新しく”テスト”を作成するのではないでしょうか。私の説が正しければ、shiftを押しながら起動した状態でアプリケーションを起動しても、初期設定は二つできないはずです。なぜなら、”テスト”のファイルを探す際の間違ったUnicode変換により、”EeEXEg”が見つかるはずですから。 ちなみに、Unicode では、コンピュータは”テスト”と”EeEXEg”を違う文字列と見ていますが、s-jisに変換することによって、同じ文字列とみなすわけですから、この二つのファイルをHFSに コピーしてみるとおもしろいかもしれません。(ディレクトリが壊れても責任はとれませんが)やってみたら是非結果を教えて下さい。 |
初期設定ファイルについては、私の環境では再現できていないので、詳細は不明ですが、NagisaさんはHFS+のみの環境で発生しているとのことですので、HFS/HFS+間のコピー以外にも同様の問題が発生する可能性があるのかもしれません。
日本語名の初期設定ファイルを作成するアプリケーションをRomanスクリプト上で起動しても、初期設定ファイルが2個作成されないことは、私も確認しています。
同じような現象を経験された方がいらっしゃいましたら、ぜひ教えて下さい。
それから内部的には「テスト」と「
」と思われる2つの「テスト」をHFS+へコピーすると、すでに同じ名前のファイルがあるというアラートが表示されます。複数ファイルを一括コピーしても結局は一個づつのコピーなので、後のファイルがコピーされる際にアラートが出てしまいます。
| 最後に、私個人の意見ですがUnicodeは良くないと思います。雑誌などでは、まるで夢の規格のように扱われることもありますが、中途半端な規格だと思います。どうせ、これからの標準にするのなら、もっと技術を熟成させ、完全なものにしてからするべきです。最近は、標準化をねらって様々な技術が中途半端なまま乱発されているように見えますが、残念なことです。 |
そうですね。日本語だけでなく他の言語の文字も同じ仕組みで表現するという考え方自体は正しいと思うのですが、現在のUnicodeは様々な問題を抱えていますね。
また、ユーザの立場で考えると、UnicodeやShift-JIS等の複数の文字コードが混在しているのが大きな問題ですね。将来Macのシステムが全面的にUnicodeを使用するようになったとしても、過去の資産や他プラットホームとの連携のために文字コードが混在することは避けられませんし。
私事ですが、現在仕事でUnicode/Shift-JISの変換と文字列操作に悩まされています(笑)。
引き続き、HFS+に関するご意見をお待ちしています。
[98/04/08]

「Macintoshは米国アップルコンピュータ社の商標です」
「その他、記載の商品名などは、一般に各社の登録商標または商標です」
Copyright (C) Toshimitsu Tanaka 1998.