NetAppのボリュームには言語設定があり、設定内容に応じて使える日本語文字列が異なる。
2023年8月時点での最も対応できる範囲が広い設定は4バイトのUTF-8エンコード形式をサポートしている「utf8mb4」となる。
ドキュメント: マルチバイトを含むファイル名、ディレクトリ名、 qtree 名の ONTAP での処理
utf8mb4はONTAP 9.5以降で使える設定で、Windows側でファイル名に「サロゲート文字と補助文字」を含む文字をNetApp内に保存しようとする場合は、ボリュームがutf8mb4でなければ保存できない
なお、ONTP9.7P1以降では、UTF-8系言語をutf8mb4に変更できるようになっているとのこと(Can the volume language be changed after creation in ONTAP?)
問題は旧来から存在している言語設定である。
ONTAP 8.3.2(7-mode)にある日本語系設定
ja (Japanese euc-j+)
ja_v1 (Japanese euc-j)
ja_JP.PCK (Japanese PCK(sjis)*)
ja_JP.932 (Japanese cp932*)
ja_JP.PCK_v2 (Japanese PCK(sjis))
ONTAP 9.10.1にある日本語系設定
ja
ja_JP.PCK
ja.UTF-8
ja_v1
ja_v1.UTF-8
ja_JP.PCK.UTF-8
ja_JP.932
ja_JP.932.UTF-8
ja_JP.PCK_v2
ja_JP.PCK_v2.UTF-8
問題はドキュメントにここらへんの説明が見当たらないこと
「volume create」にある-languageオプションの解説は「Language code」としかなく、標準ではvserverのlanguageと同じとあるので「vserver create」を参照してもたいしたことは書いていない
[-language <Language code>]
– Default Volume Language Code
This optionally specifies the default language encoding setting for the Vserver and its volumes. The recommended format is to append.UTF-8
for the language encoding values. For example, for theen_US
language, the recommended format isen_US.UTF-8
. The default setting isC.UTF-8
.
NetApp KBに What is the difference between ja_JP.PCK.UTF-8 and ja_JP.PCK_v2.UTF-8? があるのだが
ja_JP.PCK uses cp932_v1.ntt and eucj_v1.ntt.
ja_JP.PCK_v2 uses cp932_v1.ntt and sjis_v2.ntt.
・・・いや説明になってないのでは?という記述のみ
ONTAP 8.3時代のドキュメントの「言語オプション一覧」もたいした記述は無い
ja_v1 日本語(euc-j) ja_v1.UTF-8 日本語(euc-j)(UTF-8) ja_jp.pck_v2 日本語PCK(sjis) ja_JP.PCK_v2.UTF-8 日本語PCK(sjis)(UTF-8)
おそらくPCKはSolarisにおける「PC漢字コード」が由来と想定される。
Solaris 2.6 では、従来の日本語 EUC に加えて PCK (シフト JIS あるいは MS 漢字コード) で日本語を扱う環境を新たに提供します。PCK は、Microsoft が Windows3.1 で規定したマイクロソフト標準キャラクタセットと同等の文字集合およびエンコーディングを提供するものです。また、PCK は、従来の Solaris リリースで MS 漢字コード (または シフト JIS) と呼ばれていたものに、ユーザー定義文字やベンダー定義文字を加えたもので、JIS X 0201、JIS X 0208 の 1-84 区 (13 区除く) までに関しては従来のものと互換性があります。
これがベースであるとすれば、PCKはWindows 3.1ベースのもので、PCK_v2はWindows それ以降対応。ONTAP 7.2などで既にPCK_v2は存在していたので、Windows2000ぐらいをベースにしていると想定される。
詳細を探すとSolaris 8のマニュアル PCK(5) に記載があった。
(内容については省略)
同じくONTAP 7.2ぐらいでja_v1, ja_JP.UTF-8 が登場していた。
cp932/932はMicrosoftコードページ932 と呼ばれるWindows 3.1J用にマイクロソフトとNECが定義したShift JISの独自拡張となる。
定義的に考えると、cp932とpckは同一ということになるのだが、先に出てきたWhat is the difference between ja_JP.PCK.UTF-8 and ja_JP.PCK_v2.UTF-8? によると、NetAppのPCKには、cp932範囲の他にも含まれているものがある、ということになる。
で・・・
これ以上の情報が見つからないのである
困ったもんだ