快捷键及跳转页面导航。跳转到正文开始。
本文档译自其它语种。如有任何偏差或错误的话,请以最新英文原文为准。如下所示,原文版权属于 W3C。.
翻译: English to Chinese translation, wintranslation
目标读者: 可扩展标识语言(XHTML)或超文本链接标示语言(HTML)编码员(使用文本编辑器或脚本撰写)、脚本开发员(超级文本预处理语言PHP及JSP等)、网络项目经理及任何希望获取关于如何处理各类格式中编码属性的人员。
编码过程中难免出现多语言及多脚本的情况,哪种方式能最好的解决此类问题?
处理可扩展标识语言(XHTML)及超文本链接标示语言(HTML)格式中的编码问题的最好方式,是将您所有的页面都以 UTF-8 编码储存。UTF-8编码可显示最广泛的语言属性。浏览器会返回与表单网页中包含的编码格式相同的格式数据,因此使用者可以以其熟悉的任何语言和脚本填写表单数据。
确保成功执行过程的必要步骤。首先,需要告知浏览器表单页面使用UTF-8编码。有多种不同的方法可 告知浏览器您当前页面的编码。不管在哪种情况下,告知浏览器表单页面的编码都极为重要,特别是在表单页面只含有 US-ASCII编码字符的情况下,因为使用者可以输入非 US-ASCII 编码的字符。
其次,脚本在接收格式数据时,将会核对返回数据是否确实使用了UTF-8编码,以应付有可能出现的错误,例如使用者于填写表单时改变了编码。UTF-8编码拥有其他编码所没有的非常具体的字节模式,这使检验成为可能。如果接收到非UTF-8编码的数据,浏览器将返回错误信息给使用者。
例如,当使用Perl时,可用以下的表达式测试页面是否使用了UTF-8编码:
$field =~
m/\A(
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*\z/x;
以上表达式可转换成其他编程语言。这样就能处理各类问题,例如过长的错误编码以及非法的代理使用。$field 属于UTF-8编码时就会顺利返回,否则失败。
翻译以格林尼治标准时间 2007-10-26 的英语内容为准,并于格林尼治标准时间 2012-01-16 11:10 作最新修改。
想了解文档的历次更新情况,请在国际化博客中搜索 qa-forms-utf-8。
Copyright © 2003-2012 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements.