扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
多字节字符问题的解决方案
编写能运行于任何服务器、在任何浏览器中都能正常显示的J2EE应用是个挑战,下面是一些针对J2EE应用多字节字符问题的解决方案:
通用原则:从不假定客户端(浏览器)和服务器端有任何默认设置。
在编辑阶段,不要假定IDE的默认编码设置是你想要的,要手工设置它们。
如果IDE不支持特定语言,就在Java代码中用\uXXXX转义序列,在HTML页面中用&#XXXX转义序列,或用随JDK分发的native2ascii工具将本地文字字符串转换成Unicode转义序列,这样就能避免绝大部分问题。
在编码阶段,从不假定服务器默认的编码处理设置是正确的,而用下面的方法显式指定:
· 请求:
· 响应:
在为多种语言开发应用时,采用UTF-8编码方式或将所有语言的字符都用\uXXXX转义序列表示。
· 在编译Java类时,确保当前语言环境变量与编码方式正确匹配。
· 在配置阶段,尽可能地使用标准设置。例如在Servlet 2.4规范中有一个配置每个应用的字符编码方式的标准:
当与外部系统通信时,尽可能地找出这些系统的编码方式,如果编码不同就进行转码。可以用UnicodeFormatter.java作为调试器打印所有的字节:
清单4
总在HTML页面中对编码方式做显式声明,例如
content="text/html;charset=gb2312">,不要假定浏览器的默认设置是正确的。
· 不要在链接里加入多字节字符,例如查询字符串里不要用用户名,改用用户ID。
· 如果必须在链接里加入多字节字符,那就要对URL进行手工编码,可以在服务器端处理(用Java),也可以在客户端处理(用JavaScript或VBscript)。 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者