Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Unicode の相互運用性

最終更新 Markdown で表示Agent セットアップ

R2 は Workers の上に構築されており、Unicode をネイティブに扱えます。Unicode で見落とされがちな点のひとつが、Unicode 等価性 による ファイル名の相互運用性 です。

ユーザーからのフィードバックを踏まえ、キー名は保存前にデフォルトで NFC 正規化します。そのため、たとえば HélloHéllo は R2 では同じオブジェクトですが、ほかのストレージプロバイダーでは別オブジェクトになります。HélloHéllo は文字のバイト列が違っても、表示は同じです。

一方で、表示用のエンコーディングは保持します。オブジェクトを一覧すると、最後にアップロードしたときのエンコーディングが返ります。

プラットフォーム固有の違いも残ります。

  • Windows と macOS のファイル名は大文字と小文字を区別しません。R2 と Linux は区別します。
  • Windows コンソールの Unicode 対応は誤りやすいです。オブジェクト名が正しく見えない場合は、コマンドラインツールの前に chcp 65001 を実行するか、Cygwin を使ってください。
  • Linux ではファイル名がバイト列のため、Unicode 等価でも別ファイルとして存在できます。Linux 上の Unicode 等価なファイル名は、同じ R2 オブジェクトを指します。

Unicode 等価性を回避し、バイト指向のキー名を使いたい場合は、Cloudflare のアカウントチームに連絡してください。

役に立ちましたか?