精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>网络专区>>● 网站建设>>盖世神功 — 网站建设技术>>HTML — 做好一个网页不能没有的基础>>HTML 文档字符集

主题:HTML 文档字符集
发信人: tedz()
整理人: eagle(2000-12-24 09:41:45), 站内信件
HTML 文档字符集
 
人 类 语 言 具 有 大 量 的 文 本 字 符 并 且 被 制 作 成 大 量 的 广 泛
的 计 算 机 系 统. 除 非 作 出 适 当 的 留 心, 不 同 的 字 符 并 不 能
被 全 世 界 所 有 的 用 户 代 理 器 理 解. 
文档字符集
为 了 提 高 中 间 运 算, SGML 需 要 作 为 其 定 义 中 一 部 分 每 一 个
应 用 (包 括 HTML), 定 义 它 自 身 的?dfn>文 档 字 符 集. 一 个 文档 字
 符 集 是 一 个 抽 象 的 字 符 集 合 (就 象 斯 拉 夫 字 母 "I", 在汉 语
 中 表 示 "水" 等 <译者: 我 操, 翻 到 这 里 差 点 没 把 我 气 死, 看 来
中 国 的 文 学 绝 不是 洋 人 可 染 指 的 东 西, 我 仔 细 地 研 究 原
文, 丝 毫 没 有 中 国的 "水" 在 斯 拉 夫 语 系 中 用 "I" 表 示 的 意 思
, 原 文 如 下: such as the Cyrillic letter "I", the Chinese character
meaning "water">) 和 一 套 整 体 的 字 符 参 考 集 合. SGML 在 文 档 字
 符 集 中 考 虑 一个 优 先 参 考 次 序. 
HTML 使 用 的 文 档 字 符 集 是 根 据 [ISO10646] 的 世 界 字 符 集 (Un
iversal Character Set, UCS) . 这 个 字 符 集 逐 字等 同 于 Unicode 2.0
 ([UNICODE]). 两 个 标 准 都 时 常 更 新 新 字 符 并 且 改 进 方 案 都
 将 在 Web 节 点磋 商. 

就 当 前 的 说 明 书 而 言, 参 考 字 符 集 为?ISO/IEC-10646 或 Unicode
 意 味 着 是 同 一 种 字 符 集. 无 论 如 何, 当 前 的 文 本 参 考 Unic
ode 的 描 述 文 本 的 运 算 法 则. 

一 致 性 的 HTML 用 户 代 理 器 可 能 使 用 任 何 的 字 符 解 码方 式 
(character encoding) 接 受 或 发 送 一 个 文 本, 或 者 在 内部 描 述 一
 个 文 本. 一 个 解 码 方 法 说 明 了 一 些 文 本 字 符 集 的子 集. 如
 ISO-8859-1 (常 规 的 "Latin-1" 字 符 集 参 考 并 作 为 西 方和 欧 洲 
语 系 的 解 码) 解 码 方 式, ISO-8859-5 (提 供 斯 拉 夫 语 系) 解 码 方
 式, SHIFT_JIS (日 文 解 码) 解 码 方 式 和 euc-jp (另 一 种 日语 解 码
) 解 码 方 式 保 存 了 各 自 的 字 符 集. 

因 此, 字 符 解 码 允 许 作 者 在 方 便 的 合 适 的 文 档 字 符 子 集下
 工 作. 作 者 无 需 知 道 任 何 的 下 层 的 文 档 解 码 工 作 以 及 工
具 是 怎 样 使 用 解 码 的?--- 在?UTF-8 下 编 辑 日 语 编 辑 者 就 象 
在 JIS 或 SHIFT_JIS 下 编 辑 日 语 一 样 容 易. 

字 符 解 码 也 意 味 着 作 者 无 需 进 入 一 个 特 定 字 符 集 的 页面
 来 输 入 文 本. 如 果 需 要 作 者 自 行 对 大 型 字 符 集 解 码 是 使
人 厌 烦 和 浪 费 的 (即 使 如 UTF-8 包 括 了 所 有 的 Unicode ). 

为 了 允 许 这 个 便 利, 一 致 性 的 用 户 代 理 必 须 正 确 地 对 应于
 [UNICODE] 的 所 有 字 符 的 并 且 识 别 (就 象 目 前 做 到 的 一 样)?
任 何 解 码方 式 ("charsets"). 一 个 建 议 的 对 大 量?的 脚 本 和 语 
言 而 言 的字 符 解 码 方 式 将 在 分 列 的 文 档 中 列 示. 

一 个 用 户 代 理 器 是 如 何 知 道 某 个 给 定 文 本 该 怎 样 解 码的


在 许 多 情 况 下, 一 个 Web?服 务 器 在 Web 上 发 送 一 份 HTML 文档,
 它 尝 试 指 出 文 档 的 解 码 方 式 (通 过 各 种 技 术, 如 在 文 件发
 送 最 起 先 的 几 个 字 节 时, 对 比 数 据 库 中 已 知 文 件 和 解 码
方 式, 等 等). 服 务 器 通 过 HTTP 的?"Content-Type" 字 段 参 数 向 用
户 代 理 器 传 送 文 档 和 字 符 解 码 方 式 的 名 称. 例 如, 下 面 的
 HTTP 头 声 明 了 字 符 解 码 方 式 为 "euc-jp". 

Content-Type: text/html; charset=euc-jp
在 "charset" 参 数 中 的 值 必 须 是 在 [RFC2045] 中 定 义 的 "charset
" 的 名 称. 
不 幸 的 是, 并 非 所?有 的 服 务 器 发 送 关 于 字 符 解 码 的 信 息 
(甚 至 当 字 符 解 码 方 式 不 是 广 泛 运 用 的 ISO-8859-1 解 码 方 式
). HTML 因 此 允 许 作 者 使 用 一 种 在 文 档 头 使 用 META 元 素 来 
清 晰 地 告 诉 用 户 代 理 器 运 用 何 种 解 码 方 式 的 途 径. 例 如,
 为 了 使?定 当 前 文 档 使 用 "euc-jp" 解 码 方 式, 可 以 包 含下 面 
的 META 声 明: 

<META http-equiv="Content-Type" Content="text/html; charset=euc-jp">
此 结 构 有 个 要 注 意 的 限 制: 一 个 用 户 代 理 器 无 法 对 未 知 
格式 的 文 档 字 符 集 通 过 解 译 META 元 素 来 判 断 字 符 解 码 方 
式. META 声 明 必 须 当 解 码 方 式 在 判 断 META 时 自 身 可 以 被 当
 作 ASCII 字 符 标 准 被 识 别 时 才 能 使 用. 在 这些 情 况 下, 一 致
 性 用 户 代 理 器 必 须 正 确 地 解 译 META 元 素. 
概 括 来 说, 一 致 性 用 户 代 理 器 必 须 在 判 断 一 个 文 本 的 解码
 方 式 时 注 意 到 下 面 的 属 性 (从 上 至 下): 

显 式 的 用 户 动 作 来 覆 盖 错 误 行 为. 
一 个 在 "Content-Type" 字 段 中 的 HTTP "charset" 参 数. 
一 个 通 过 "http-equiv" 设 置 成 "Content-Type" 的 META 声 明 或 一 个
 "charset" 值. 
A 和 LINK 元 素 中 的 "charset" 属 性 设 置. 
用 户 代 理 器 启 发 试 地 试 探?而 让 用 户 设 置. 例 如, 典 型 地 用
户 代 理 器 假 定 没 有 别 的 指 示 存 在 时, 解 码 方 式 为 ISO-8859-
1. 这 个 假 定 对 于 某 些 特 定 文 档 非 导 致 无 法 阅 读 (译 注: 我
 们通 常 说 的 乱 码). 
在 所 有 情 况 下, "charset"?属 性 或 参 数 的 值 必 须 是 在 [RFC2045
] 中 定 义 的 "charset" 名 称. 
对 于 某 些 指 定 的 运 用, 如 果 有 必 要 指 定 超 越 [ISO10646] 的 字
 符 集, 字 符 应 当 被 指 定 到 一 个 私 有 区 域 来 避 免 当 前 和将 
来 标 准 之 间 的 冲 突. 这 的 确 非 常 有 阻 碍 , 但 无 论 无 何, 理由
 是 为 了 简 便. 

注 意: 流 行 的 web 服 务 器 能 够 设 置 关 于 文档 使 用 何 种 解 码 
方 式 的 信 息. Webmasters 应 当 使 用 这 些 灵 巧性 但 应 当 花 费 心
 费 来 适 当 的 配 置 服 务 器.
字符条目
你 的 硬 件 和 软 件 设 置 可 能 不 允 许 你 通 过 简 单 的 输 入 设 机
制 来 指 定 所 有 的 Unicode 字 符, 所 以 SGML 指 定 了 字 符 - 独 立 
(encoding-independent) 结 构 来 指 定 文 档 字 符 集 中 的 任 何 字 符

数 字 字 符 参 照 (10 进 制 和 16 进 制). 
已 命 名 字 符 参 照. 
数 字 字 符 参 照 指 定 了 Unicode 的 整 数 参 考. 一 个?使 用 语 法 符
号 &#D 的 数 字 字 符 参 照; 相 当 于 Unicode 10 进 制 字 符 数 D. 一 
个 使 用 语 法 符 号 &#xH 的 数 字 字 符 参 照 ; 相 当 于 Unicode 的 1
6 进 制 字 符 H. 16 进 制 表 示 法 是 一 种 新 的 SGML 协 定 并 且是 字
 符 标 准 使 用 16 进 制 后 的 一 个 显 著 使 用. 
这 里 是 一 些 例 程: 

Entity &#229; 指 字 母 "a" 上 面 有 个 小 圈 (便 如 在 挪 威 语 中). 

Entity &#xE5; ?当 于 16 进 制 表 示 法 中 的 相 同 字 符 . 
Entity &#1048; 指 斯 拉 夫 语 系 中 的 大 写 字 母 "I". 
Entity &#x6C34; 用 16 进 制 表 示 法 表 示 的 汉 语 的 水. 
为 了 指 作 者 在 文 档 字 符 集 问 题 上 提 供 一 条 更 直 觉 的 途 径
, HTML 提 供 一 组?dfn>已 命 名 字 符 条 目. 已 命 名 字 符 参 照 用象
 征 性 的 名 称 代 替 了 整 数 参 照. 命 名 条 目 &aring 指 Unicode 码
 的 &#229;. 然 而 并 没 有 命 名 条 目 用 来 指 斯 拉 夫 语 系 的大 写
 字 母 "I". 已命名字符条目的全部列表 也 被?包 含?于 这 份 说 明 书 中.
 
有 四 种 命 名 字 符 条 目 因 为 经 常 被 用 来 "避 免" 特 殊 字 符而 
值 得 提 及: 当 文 字 作 为 元 素 内 容 出 现 时, 你 应 当 用 避 免使 
用 < 而 用 < 来 避 免 可 能 与 标 注 起 始 符 之 间 的 冲突. 而 & 符
号 应 避 免 为 & 来 避 免 与 字 符 条 目 参 照起 始 符 的 冲 突.


你 应 当 在 cdata 属 性 允 许 的条 目 参 照 值 中 避 免 &. 另 外, 你 也
应 当 用 > 来 代 替 > 号, 因 此 可 避 免 老 式 的 用 户 代 理 器 错
 当 后 面 的 语 句 这 个 字符 作 为 引 用 值 时 错 误 地 凭 感 觉 认 为
 这 是 一 个 标 注 结 束 符. 

与 其 担 心 引 号 的 使 用 法 则, 不 如 把 任 何 的 实 例 " 用 &quot 代
 替 来 得 容 易; 并 且 任 何 真 正 引 用 参 数 值 的 场 合 使 用 ". 许
多 人 们 发 现 在 元 素 内 容 和 属 性 值 中 经 常 避 免 4 个 字 符 要
来 得 简 单. 

用 "&amp;" 来 表 示 & 符 号. 
用 "&lt;" 来 表 示 < 符 号.
用 ">" 来 表 示 > 符 号. 
用 "&quot; 来 表 示?" 符 号. 
已 命 名 字 符 条 目 的 名 称 是 大 小 写 有 关 的. 因 此 &Aring; (大 
写?A 加 环) 不 同 于 &aring; (小 写 a 加 环) 指 示 的 字 符.. 

注 意: 在 SGML 中, 在 某 些 情 况 下?可 以 省 去 数字 参 照?或 命 名 字
 符 参 照 后 面 的 ";". (例?如 在 换 行 或 在 标 注符 前 时). 在 另 外
 的 场 合,?则 不 被?除 去 (如 在 某 个 词 的 中 间 时). 我 们 强 烈?建
 议 在 所 有 情 况 下 使?用 ";" 来 避 免 用 户 代 理 器 需要 对 此 字 
符 的 说 明.

--
朋友可以让时间变得短暂,
让快乐加倍的膨胀,
让悲伤悄悄的引退,
让回忆不再平淡.
我想--------我会喜欢这里.

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.130.2.52]

[关闭][返回]