x-user-defined

x-user-defined 文字符号化

[8] x-user-defined は、文字符号化の1つです。

仕様書

処理

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

特殊性

[9] 他の文字符号化とは異なる特別な扱いがあります。文字符号化も参照。

[17] 令和7年時点で HTML Standard に3箇所 x-user-definedWindows-1252 に読み替える規定がありますが、いずれも HTML <meta charset> の解釈に関するものです。 >>26 encoding sniffing algorithm

[18] HTML StandardHTTP charset を使うときに読み替えろとは規定していません。 FirefoxChrome もそのまま x-user-defined を使います。

[19] そのため HTTP で指定するか HTML で指定するかによって挙動が違うことになります。 歴史的にはどちらも同じように解釈されていたはずで、 HTML StandardEncoding Standard が今の形で規定した後にそれに合わせて実装されたためこうなってしまったのでしょうか。

[27] これについて HTML Standard の記載を検討すると、確かに HTML StandardHTTP charset の読み替えを規定していませんが、実は HTTP charset の値を使うとも定めておらず、 転送プロトコル文字符号化を使うことしか求めていません >>26 encoding sniffing algorithm, 文字コードの決定

[28] HTML Standard の当該規定が作られた当時はまだ Encoding Standard がなく、 HTTPMIME の仕様書にも曖昧さが多いため、 文字符号化に関する規定を厳密に記述することができませんでした。 そこで charset 引数が云々という具体的な規定は含まれず、 抽象的な規定にとどまっているのです。 (HTTPMIME とは違う転送プロトコルが使われる可能性への配慮でもあります。)

[29] 従って、 charset 引数に指定された値 (仕様上は MIME charset) を HTML Standard がいう「文字符号化」や Encoding Standard がいう符号化へとどのように変換するか、 仕様上は定めがありません。 仮に charsetx-user-defined と記載されていたとして、 それを Encoding Standardx-user-defined に対応付けるのが正しいか、 Windows-1252 に対応付けるのが正しいか、それ以外の選択が正しいのか、 HTML Standard は何も言っていないのに等しいのです。

[30] HTML Standard の現状の曖昧な規定および FirefoxChrome の現状の実装は、 Web互換ではありません

[20] 実例 TSCII

文脈

フォント依存符号化

[23] PASCII, MyaZedi

[22] HTTPヘッダーでの利用事例 TSCII

[21] user-defined の利用事例 Shree-Tel-0900, VNI

encoding sniffing algorithm

[31] compact_enc_det/compact_enc_det/compact_enc_det.cc at master · google/compact_enc_det · GitHub, https://github.com/google/compact_enc_det/blob/master/compact_enc_det/compact_enc_det.cc#L1809C1-L1809C5

user-defined の処理

関連

[24] PUA

歴史

[1] Using XMLHttpRequest - MDN ( ( 版)) https://developer.mozilla.org/En/XMLHttpRequest/Using_XMLHttpRequest#Receiving_binary_data_in_older_browsers

[2] IRC logs: freenode / #whatwg / 20131129 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20131129

[3] 6588 – implement "User-Defined" charset ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=6588

[4] Unicode Mail List Archive: Re: Unicode Devanagari Font in Mozil ( (James Kass (jameskass@worldnet.att.net) 著, 版)) http://www.unicode.org/mail-arch/unicode-ml/y2002-m07/0411.html

[5] 電子メールでの利用例もあるようですが、いつから誰が使っているのかははっきりしません。 2000年代以後のもので、 >>3 より後です。

[6] Encoding Standard ( ( 版)) http://encoding.spec.whatwg.org/#x-user-defined

[7] Web Applications 1.0 r8618 Make <meta charset=x-user-defined> turn into windows-1252 for legacy reasons ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8617&to=8618

[10] Chromemeta で指定された時、 Windows-1252 に読み替えます (仕様通りの動作)。 HTTPヘッダーHTML文書中の XML宣言での指定、 CSS@charset の指定では、そのまま x-user-defined として扱います。

[11] ChromeXML宣言x-user-defined が指定されている時、未知の文字符号化だとして整形式性エラーを表示します。 HTTPヘッダーx-user-defined が指定されていれば、それを尊重しますが、 XML宣言があればエラーになります (なければエラー無く取り扱えます)。

[12] chardetng: A More Compact Character Encoding Detector for the Legacy Web (Henri Sivonen, , ) https://hsivonen.fi/chardetng/#fonts

[13] Armenian NLS - Internet, , http://web.archive.org/web/20021210124951/http://www-us.webmasters.am/armnls/inet.htm

It is recommended to define the character set explicitly in the "Content-type" meta tag when composing a web page in Armenian. The "charset" value can be either "x-user-defined", or "armscii-8". The latter is preferred, since future implementations of web browsers may recognize this encoding. Sample HTML code to be added in the <head> section:

    <meta http-equiv="Content-Type" content="text/html; charset=x-user-defined">
or
    <meta http-equiv="Content-Type" content="text/html; charset=armscii-8">

[14] Scaleable Georgian fonts in X, https://shoshia.tripod.com/fonts.html

  <meta content="text/html; charset=x-user-defined" http-equiv="Content-Type">

[15] >>14 この頁自体は実際には ASCII のみ (GEO8-GOV 等を紹介している記事)。

[16] georgian-academy, TSCII に実例