[asp]让你知道codepage的重要,关于多语言编码(四)

2017 年 12 月 13 日2530

案例1。

简体中文系统下跑的好好的代码,放到国外空间上,数据库里乱码,原有的数据也乱码。

分析:因为大多数人平时用的都是简体中文系统,默认的codepage=936,所以平时大家不写也没有关系。

但到了国外空间问题就出来了。从数据库里的Unicode转换到英文编码去了,所以数据库原有的简体中文转换到英文后,按GB显示自然乱码。

如图,新输入的文字显示正常,但数据库里保存的是英文的Unicode的。

解决方法:全部加上<%@codepage=936即可%>。

全程只有简体中文与对应Unicode间的转换。

案例二:

简体中文的代码和数据,想转为完全的繁体版,该怎么办?

分析:1。代码文件编码全部改为Big5的,文件本身保存编码选繁体。

2.<%@ codepage=936 %>

3.Charset=big5

4.access版本无所谓,因为access里的数据是Unicode的。

5.好了,代码可以在纯繁体系统下跑了。

6.遗留问题:原有的简体中文数据读出会有一些问号。效果同例一的950读取,big5显示。因为从简体中文的Unicode转换到繁体中文了,有些字繁体中没有,就会出问号。

7.解决:用一个临时asp页,codepage=65001,读出为简体中文的Unicode,用一个Unicode->Big5的函数,转为繁体中文,然后写回数据库,应该行了吧?

=============================================

两个案例完全是我按照理论推导出来了,未经证实。

有类似经历的欢迎批评指正。

songtao

本文来源:论坛

责任编辑:王晓易_NE0011

0 0