Co

私用 (Unicode)

[22] Unicode私用域 (private use area) は、 Unicode Standard で特定の意味が規定されず、 利用者等が用途を定めることができる符号位置群です。

代替

[93] 私用文字は、 相互運用性に問題があるため、使うべきではありません (>>12)。 文字化け巣窟です。

[94] 外字情報交換には、 私用文字を使わない方法を用いるべきです。 外字

仕様書

意味

[122] 私用 (しよう) (Private-Use) は、 符号点型の1つです。 >>121 D10a General Category Co と同義です。 >>123

[77] 私用文字 (private-use character) は、 割り当てられた Unicode符号位置であって、 その解釈は The Unicode Standard では規定されず、 当事者間の私的な合意によって決定されるものです。 >>44

[112] 「割り当てられた」というのは未割当符号位置に対するものです。 非文字未割当扱いです。

[7] 他の文字コードとの変換表で対応関係が規定されている場合、 実装者が内部的に用いる場合、 実装者が規定して利用者に提供する場合、 フォントが規定して利用者に提供する場合、 利用者が自ら規定して用いる場合があります。

[78] 私用文字は、よく end-user defined character (EUDC) として使われます。 >>44 外字エディタのような一般の利用者外字を定義できる仕組みが用意されていることがあります。

[79] プラットフォームアプリケーションフォントの開発者が、 予め定めた独自の割当の文字私用文字として提供されていることがあります。

符号点

[76] Unicode私用域 (Private Use Area) (PUA) は、 主、 副A、 副Bの 3つの領域から構成されます。


[65] primary Private Use Area は、 U+E000 - U+F8FF の6400個の私用文字 (private-use character) です。 >>44

[66] primary Private Use Area は、 U+F8FF から始まり符号位置が小さくなっていく corporate use subarea と、 U+E000 から始まり符号位置が大きくなっていく end-user subarea に二分されます。 >>44

[70] この分割は、 プラットフォームで定義された私用文字末端利用者が定義する私用文字との衝突の可能性を減らすための慣行で、 規定ではありません。 分割点は定義されておらず、 衝突の回避の手法も実装と末端利用者依存とされています。 あくまで便法として提案されたものに過ぎないため、 この区分を採用しなくても構いません。 >>44

[67] corporate use subarea は、 システム事業者やソフトウェア開発者が内部用に私用文字を予約したいとき、 好ましい (preferred) 領域です。 完全に内部用で末端利用者には見えないもの、 例えば操作の指示のようなものに使っても構いませんし、 事業者規定の文字の割当として出版して応用末端利用者の利用に供しても構いません。 >>44

[68] ただし情報交換可能でない内部用の指示の類には非文字を使うのが好ましい (preferred) です。 >>44

[69] end-user subarea は、 末端利用者文字を定義したり、 末端利用者アプリケーション文字を割り当てていくための領域として使ったりする想定です。 >>44


[73] Supplementary Private Use Area-AU+F0000 - U+FFFFDSupplementary Private Use Area-BU+100000 - U+10FFFD で、 合計131068個の私用文字です。 primary PUA で足りない時に使えます。 >>44

[74] 私用文字としての用法は primary PUA も両 supplementary PUA もまったく同じです。 supplementary PUA には corporate use, end-user の区分はありません。

[82] 第15面 U+F0000 - U+FFFFF, 第16面 U+100000 - U+10FFFF は、非文字 U+FFFFE, U+FFFFF, U+10FFFE, U+10FFFF を除き、すべて私用文字に割り当てられています。 この2つの私用面 (Private Use Plane) (PUP) と呼ぶことがあります。

特性

[89] 私用域符号位置にも、 他の符号位置と同じように特性値が決められています。

[90] Unicode の多くのアルゴリズムは、 General_Category やそれから派生した特性を参照しています。 私用文字に関するその特性値は、 特に禁じた場合を除き、 私的な同意に基づき上書きして設定できます。 >>44

[91] その他の特性についても、 正規化に関係するものを除き、 UCD で定められた特性値は既定値であって、 参考とします。 この既定値は、 典型的な用例に基づき決められたもので、 私的な同意なき場合の一貫した挙動を定めることと、 一般的な利用を簡単化することを意図したものであります。 実装は、その私用に関する要件に従い適宜変更・上書きして構いません。 >>44

[92] 私的な同意に基づき大文字と小文字の関係を設定したり、 結合文字として使うことにしたりできます。 >>44

[100] NFC など Unicode で規定された正規化は、 私用文字を変化させません。 私的な同意があってもこの挙動を変化させてはなりません。 (もちろん独自の正規化手法を採用する場合はこの限りではありません。) >>44


[101] 特性値をどの程度変更しても良いかについて、 The Unicode Standard は特に言及していません。 しかし Unicode で規定される各アルゴリズムや、 特性値を参照するそれ以外の仕様書規定特性値を参照するアプリケーション固有の挙動などは、 必ずしもあらゆる特性値の組み合わせを扱えるわけではありません。 他のどの Unicode文字でも起こり得ない組み合わせに対する挙動は想定されていない可能性があります。 仕様上は想定されていても、実装上は除去して最適化されていることがあり得ます。

[102] とりわけ、 他の特性値から導出されるいくつかの特性値を扱うアルゴリズムは、 各特性値の一貫性を前提にしているかもしれません。 導出Unicode仕様書上の概念に過ぎず、 実装上は一方から他方が計算されるとは限りません 特性

[103] 特性は既に相当数規定されている上に、 Unicode の改正のたびにどんどん追加されています。 私用文字のそれぞれについて、 すべての特性を適切な値に保ち続けるのは困難です。

[104] そう考えると、 私用文字の定義の時に特性を1つ1つ設定していく方法より、 予め用意した特性値の組み合わせの中から適当なものを1つ選択する方法の方が、 現実的な実装手段ではないでしょうか。 「予め用意した特性値の組み合わせ」 も、 新たに独自に用意するよりは、 既存の Unicode符号位置を1つ選ぶことで記述するとした方が簡単そうです。 既存のどの Unicode符号位置とも特性が一致しない私用文字を使いたい可能性は、 それほど高くないでしょうから、 多くの利用はカバーできそうです。

[105] 例えばアルファベット系の外字なら「A」、 漢字系の外字なら「」 のように性質の似た既存の文字を選ぶ形にすればいいということです。

[106] ただしこの手法でも、 大文字小文字の変換の特性値Unihan 系の特性値など、 すべての特性値を丸々コピーするわけにはいきません。


[108] アプリケーションによっては、 相互運用性のため、 私用文字が使えたとしても特性値の変更までは認めない、 または特定の場面では特性値の変更を関知しないような制限があるかもしれません。

[109] 例えば正規表現\p特性値によって文字一致を判定します。 ネットワークで配布する条件記述ファイル中に含める正規表現で、 一致するか否かが変わると相互運用性に支障が出るまら、 必ず UCD特性値通りに動作すると定めるべきでしょう。

[110] 逆に、テキスト編集アプリケーションで、 選択した文字列大文字小文字に変換するボタンなら、 相互運用性には支障がなさそうですから、 利用者の便宜を優先するのが良さそうです。


[107] Unicode符号位置私用文字として独自の文字を割り当てる方法を採っていますが、 マーク付け言語プロトコルに依存した、 Unicode符号位置以外の方法で外字を表現・交換することもあります 外字 。 そのような外字も、 Unicode私用文字と同様に、 自然に扱うためには適切な特性値の情報が与えられていなければなりません。

[111] それに対応した交換形式は Missing Characters in XML くらいしか見たことがありません。 しかしこの提案はほとんど使われていないようです。

[113] 関連して非文字の場合については、非文字参照。

安定性

[80] Unicode私用文字符号位置は、 恒久的に私用に割り当てられています。 >>44

[81] Unicode Consortium が特定の標準の文字の割当を承認したり文書化したりすることはありません。 >>44

[87] 私用文字としての利用実績が、 Unicode への文字の追加の如何やその技法の決定に直接影響を及ぼすことはありません。 >>44

[88] Unicode文字の追加を提案する人達が、 フォント国内規格PUA に提案する文字を並べて事前に使っていることは珍しくありません。 しかしそれが PUA 内の符号位置のまま標準化されることはあり得ませんし、 別に追加されることになったとしても文字の配列順が変更されることはよくあります。

[84] かつて ISO/IEC 10646U-60000000 - U-7FFFFFFF, U-00E00000 - U-00FFFFFF私用としていました。

[85] この領域を使っていた実装もありました。

[86] ところがこの領域は Unicode では表せないということで、ばっさり消し去ってなかったことにされました。

文脈

[119] 任意の Unicode文字を受け付けるプロトコルマーク付け言語データ形式は、 私用文字の利用にも特に制限は設けていません。

[120] XMLの名前のように、 識別子系の構文は私用文字を認めないことが多いようです。

[125] なぜか IDS でも利用が認められています。

処理

[114] 私用文字を特別に扱わず、ただの符号位置として扱う実装も少なくありません。 実は多くの処理はそれでいいのかもしれません。

[115] プラットフォームによっては EUDC の仕組みが組み込まれています。 アプリケーションはただの符号位置と扱うだけで、 利用者プラットフォームを介して定義した外字を使うことができます。

[116] 多くのプロトコルマーク付け言語は、 私用文字に対して特別な扱いを設けていません。 意図したものにせよ、そうでないにせよ、 現実に私用文字はそれなりに使われ、 それなりに流通しています。 従って入出力時に私用文字だからという理由で除去したり U+FFFD に置換したりするのは、 データの破壊につながります。

[117] 適合性検査器lint のような検査ツールの類は、 私用文字を検出して警告するべきでしょう。

[118] データの互換性と相互運用性のため、 フォントが明示的に指定され埋め込まれている場合を除いて、 私用文字は常に未割当符号位置のように表示し、 なるべく入力させなくする方が安全かもしれません。

相互運用性

[12] 私用文字は、 その性質上、相互運用性はまったく期待できません。 書き捨ての文書など例外的な場合を除き、使うべきではありません。 また他の誰がどのような用途で用いているかわかりませんから、 内部処理用にも使うべきではありません。

[71] たとえ corporate use subarea であっても、 異なる事業者の定義した私用文字の相互の衝突の回避の方法は用意されていません。 どの事業者の定義を採用したか記述する方法も用意されていません。

[72] 利用者間の私用文字の相互の衝突の回避の方法は用意されていません。 私用文字の定義を記述し交換する標準的な方法もありません。

[95] 同じプラットフォームであっても、 違うフォントに切り替えるだけで、 私用文字文字化けしてしまう可能性があります。

[96] フォント依存の私用文字は、 フォント名を指定できるワープロなどでは保持できますが、 同じフォントを持たない別のシステムでは文字化けします。

[97] PDF として保存する場合は、 フォント埋め込むなら同じ私用文字が再現されるはずです。 埋め込みしないなら私用文字を使ってはいけません。

[98] Web では Web Fonts を使えば私用文字を利用できます。 取り回しに難がありますから、できれば避けるべきです。 Web Fonts を使えないときは使うべきではありません。

[99] 私用文字の一貫した扱いのためには、 グリフデータの他に、 特性も共有する必要があります。 しかし The Unicode Standard はその手段を定義していません。 >>44 他に一般的な手法もありません。 特定のアプリケーションだけで使える仕組みは探せばあるかもしれませんが、 可搬性はありません。

関連

[23] Unicode 以前の文字コードやその実装にも、 外字EUDC自由領域DRCS といった呼称で同様の符号位置ビット組合せが用意されていたり、 空き領域を実装が勝手に使ったりしていました。

[36] Unicodeにない文字

[34] UTF-16 において PUP に使う high-surrogate code points は、 private-use high-surrogate code points と呼ばれています。

[62] 内部処理専用の符号位置として非文字があります。

歴史

[83]

私用面 (private use planes)
この符号化文字集合中のであって、 この規格群で文字を規定しない面 (10. 参照)。 (JIS X 0221‐1:2001 4.31)
[42] JIS X 0221‐1:2001

10. 私用の群、面及び領域

10.1 私用文字

この規格群では、私用文字にはいかなる制限も加えない。 私用文字は、利用者定義の文字を備えるのに使用できる。 例えば、これは、漢字用字の利用者には一般的な要件となる。

備考 私用文字の意味のある交換のためには、 この規格群とは別に、送受者間の合意が必要となる。

私用文字は、動的に再定義可能な文字の適用業務に使用できる。

備考 動的に再定義可能な文字の意味のある交換のためには、 この規格群とは別に、送受者間の合意が必要となる。 この規格群は、動的に再定義可能な文字の定義又は設定の技法を規定しない。

動的に再定義可能な文字というのは、 JIS X 0202 で言う動的再指定可能文字のことです。

10.2 私用文字の符号位置

607F の32個の符号位置は、 私用とする。

00 0F 及び面 10 並びに面 E0FF の32個の面の符号位置は、 私用とする。

基本多言語面の6400個の符号位置 E000F8FF は、私用とする。

これらの符号位置の内容は、この規格群では規定しない (10.1 参照)。

[43] 同じ JIS X 0221‐1:2001 の 11. 備考には、

この規格で規定する文字の名前及び符号位置を、この規格群の将来の改正で変更する意図はない。

... と書いてありますけど、私用文字はその意図の範囲外なのでしょう。 (私用文字は符号位置を規定するけど内容 (文字) は規定しないから?)

利用例

[26] 文字符号化 x-user-defined は、 [ U+F780, U+F7FF ] を [ 0x80, 0xFF ] と対応付けています。

[1] Emacs VietThai environment http://www.m17n.org/vietthai/forEmacs.html

As the proposal for VietThai script to the Unicode is still in progress, we use the Private Use Area for VietThai characters (U+F000..U+F07E). A VietThai font encoded accordingly is also available in the package.

[2] Special filenames ( ( 版)) http://www.cygwin.com/cygwin-ug-net/using-specialnames.html

[3] Private Use (Unicode) - Wikipedia, the free encyclopedia ( ( 版)) http://en.wikipedia.org/wiki/Private_Use_(Unicode)#Example_code_point_U.2BF8FF

[4] Bug 16862 – Indexes: GB18030 and Microsoft encodings should support PUA code points ( ( 版)) https://www.w3.org/Bugs/Public/show_bug.cgi?id=16862

[5] Character Model for the World Wide Web 1.0: Fundamentals ( ( 版)) http://www.w3.org/TR/charmod/#sec-PrivateUse

[9] JsonWireProtocol - selenium - A description of the protocol used by WebDriver to communicate with remote instances - Browser automation framework - Google Project Hosting ( ( 版)) https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value

[10] 5-1a. 錦明朝かな(明朝体フォント) ( ( 版)) http://www.akenotsuki.com/eyeben/font/nishiki_kana.html#knownissue

[11] WebDriver ( ( 版)) https://dvcs.w3.org/hg/webdriver/raw-file/default/webdriver-spec.html#character-types

[13] ( 版) http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/CORPCHAR.TXT

[15] w3c/smufl ( 版) https://github.com/w3c/smufl

SMuFL is a specification that provides a standard way of mapping the thousands of musical symbols required by conventional music notation into the Private Use Area in Unicode’s Basic Multilingual Plane for a single (format-independent) font.

[16] ( 版) http://www.arib.or.jp/english/html/overview/doc/2-STD-B24v5_1-1p3.pdf#page=156

DRCS の文字は、基本多言語面の私用領域に対応付ける。

私用領域の利用にあたっては、DRCS は EC 区 00 点から順次用いることとする。

[17] アイコンフォント絵文字

[18] FORUM21 ( 版) http://www.forum21.jp/contents/contents6-15.html

バットは920で、プロ選手のなかでも重い方なんですよ。

[19] WebKit on Twitter: "The Pay JS code has landed in open source. https://t.co/AJfKFtdKxy" () https://twitter.com/webkit/status/746441587811508227

[20] Basic message formatting | Slack (Slack著, ) https://api.slack.com/docs/message-formatting

The Slack message server and API handle conversion from several binary emoji formats - the Unicode Unified format (used by OSX 10.7+ and iOS 6+), the Softbank format (used by iOS 5) and the Google format (used by some Android devices). These Unicode code points will be converted into their colon-format equivalents.

[21] RFC 1345 - Character Mnemonics and Character Sets () https://tools.ietf.org/html/rfc1345#page-40

[24] XForms 2.0 - XForms Users Community Group () https://www.w3.org/community/xformsusers/wiki/XForms_2.0#External_JSON_values

The content of a string is copied across. Escaped characters are transformed as necessary; characters and escapes that have no equivalent XML character (\b, \f, and characters of the form \uxxxx less than \u0020, except for \u0009, \u000A, and \u000D) are transformed by adding \uE000 to them.

[25] Remove the last 14 characters PUA of GB18030-2005 · Issue #27 · whatwg/encoding () https://github.com/whatwg/encoding/issues/27

[27] Bogus Shift_JIS () https://hsivonen.com/test/moz/bogus_shift_jis.htm

IE6 had the following behaviors:

The bytes 0xFD, 0xFE and 0xFF decode to U+F8F1, U+F8F2 and U+F8F3, respectively.

[28] remove Gecko quirks from shift_jis (annevk著, ) https://github.com/whatwg/encoding/commit/651f672ee988702da03f56ad8bdfda00b51a21ea

[29] bug 6180 – EUDC (外字) が表示されない ( ( 版)) http://bugzilla.mozilla.gr.jp/show_bug.cgi?id=6180

[30] 399369 – Disable font fallback when a character is in the private use areas ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=399369

[31] Comments on XML Part 1 from Japanese experts (Murata Makoto著, ) https://lists.w3.org/Archives/Public/w3c-sgml-wg/1997May/0612.html

[35] Character Description Language - Wenlin Guide () http://guide.wenlininstitute.org/wenlin4.3/Character_Description_Language

Wenlin Variation Sequences depend on Wenlin CDL font support: Wenlin uses a whole plane of Private-Use Area (PUA) characters (U+F0000..U+FFFFD), to define its own Private-Use Variation Selectors (PVS). Wenlin uses these PVS to define Wenlin’s own Private Variation Sequences, used to manage glyph variation in the CDL Database.

[37] 文字情報技術促進協議会 () https://citpc.jp/tools/downloads/font

【CITPC私用文字マッピングテーブルの仕様概要】

PUPの領域のうちU+101000-U+104FFFを、本目的のための符号位置の割り当てに用いることとし、ここへ割り当てた符号位置を「暫定私用コード」とする。

マッピングテーブルpup_mapping.txtは、MJ文字情報一覧表において、「対応するUCS」に同一の値を持つMJ文字図形名が複数存在する物(それらを区別するためにはIVSが必要となる物)、および、「対応するUCS」に値のなかったもの、ISO/IEC 10646に於ける符号化が完了していないものについて、MJ文字図形名と暫定私用コードのUCS符号位置との関係を示した物である。 なお、IPAmjPUPフォントは、IPAmj明朝フォントの符号位置に加えて、pup_mapping.txt に示した暫定私用コードの符号位置を追加実装したものである。

[38] 昔のハングル - ウィキペディア、我々はすべての百科事典 () https://ko.wikipedia.org/wiki/%EC%98%9B%ED%95%9C%EA%B8%80

[39] 古ハングル - Wikipedia () https://ja.wikipedia.org/wiki/%E5%8F%A4%E3%83%8F%E3%83%B3%E3%82%B0%E3%83%AB

ᄒᆞᆫ

[14] 資料室 [コンピュータと朝鮮語のための覚え書き], https://porocise.sakura.ne.jp/wiki/archive

[40] 私用領域をのぞく : ウェブロギスティック雑記 () http://blog.livedoor.jp/itomata/archives/4630030.html

[41] BabelStone Fonts : BabelStone Han PUA () http://www.babelstone.co.uk/Fonts/PUA.html

[32] ConScript Unicode Registry

[33] にしき的フォント - TYPVS LITTERARVM NISICIAE (, ) http://hwm3.gyao.ne.jp/shiroi-niwatori/nishiki-teki.htm

[45] EACC

[46] 蒙古文字 縦書き

[47] Koin変体仮名 (, ) http://www10.plala.or.jp/koin/koinhentaigana.html

[50] KPS 9566

[51] CNS 11643 and Big5 comparison tables - HarJIT's Website (, ) https://harjit.moe/cns-conc.html

[52] 日本語で書いている 「」(福の旧字) (黒字看板, , ) http://kurojikanbandesu.blog102.fc2.com/blog-entry-202.html

「」と書いてあります。「」は、「福」の旧字です。

[53] 「福」を意図したらしい U+E259

[54] 日本語で書いている 「」(清の旧字) (黒字看板, , ) http://kurojikanbandesu.blog102.fc2.com/blog-entry-131.html

[55] 日本語で書いている 「」(精の旧字) (黒字看板, , ) http://kurojikanbandesu.blog102.fc2.com/blog-entry-124.html

[56] 日本語で書いている 「」(黒の旧字) (黒字看板, , ) http://kurojikanbandesu.blog102.fc2.com/blog-entry-115.html

[57] 日本語で書いている 「」(都の旧字) (黒字看板, , ) http://kurojikanbandesu.blog102.fc2.com/blog-entry-104.html

[58] 日本語で書いている 「靜」(静の異体字) (黒字看板, , ) http://kurojikanbandesu.blog102.fc2.com/blog-entry-79.html

旧字なら、「」+「爭」で「靜」。

[59] GlyphWiki:フォント生成 - GlyphWiki () https://glyphwiki.org/wiki/GlyphWiki:%e3%83%95%e3%82%a9%e3%83%b3%e3%83%88%e7%94%9f%e6%88%90#i13

[61] GlyphWiki:フォント対応状況 - GlyphWiki () https://glyphwiki.org/wiki/GlyphWiki:%e3%83%95%e3%82%a9%e3%83%b3%e3%83%88%e5%af%be%e5%bf%9c%e7%8a%b6%e6%b3%81

[63] Unicode Character Encoding Stability Policy ( ( 版)) http://www.unicode.org/policies/stability_policy.html#Property_Value

[6] 第2の外字ファイル | フォント・外字エディタ TTEdit (, ) https://opentype.jp/gaijino2.htm

[8] 甲骨文字フォント (, ) http://kanji-database.sourceforge.net/fonts/koukotsu/index.html

[126] Nasuフォント ver2014.0925 の合成用濁点・半濁点 - itouhiroはてなブログ, http://itouhiro.hatenablog.com/entry/20140925/font