发新话题
打印

[方法技巧] 让我们重新认识网页编码:简体、繁体、UTF-8

让我们重新认识网页编码:简体、繁体、UTF-8

这些天在做公司的网站还有一个客户的网站,两个网站都要使用UTF-8编码,整整搞了两天才搞明白三种语言编码的问题,下面如有不当之处,还请各位不吝赐教,大家共同学习吗!% Q  C2 x, M, ~. b6 A0 b# t
先说一些编码相关的题外话
- f6 n$ M; V, i; S) s==========================================================. I) _& U6 z7 ~' D" A
一、操作系统- |4 D, v7 r( Y, W: V" q5 C
window系统内部都是unicode的。文件夹名,文件名等都是unicode的,任何语言系统下都能正常显示。
3 y: ~, g& a! \: `1 l二、输入法:
3 q$ e& a* a2 P, c+ u微软拼音输出的是Unicode的,智能ABC输出是简体中文的(所以智能ABC在非简体中文系统根本不能用,只能打英文)。4 m' a" s# \9 q! q
三、网页的textarea( Q& a1 H  c. s
网页的textarea是用unicode显示的。所以往里打什么字都能显示。而一些flash做的输入框就不行了。
* v2 S4 q. m+ a9 @7 z四、Access2000
/ S" r& ^- Z! {access里面保存的数据是unicode的,在任何语言系统下都能显示。( ?, R1 U- i" v3 E5 p: \
如果数据视图查看有些字符不正常,那是因为显示所用的字体不是Unicode字体,( x6 {' d: x# ^0 V/ z3 F2 N
换用Arial Unicode MS 字体就能全部显示了。(access帮助,搜索,输入unicode,有说明)
% u  [$ Y: u" b1 }* u% d五、Word
/ B* D( E2 Z- m+ R* [word里的繁简转换,简体转换到繁体后,内码仍是简体中文的,其实只是简体中的繁体字。
! p: g5 u0 H+ @! B; X3 N. B六、ASP内部是Unicode的,所有文本都是Unicode存储的。需要时转换到指定字符集。: i0 {6 @3 v- R$ M' K8 S$ J
=======================================================8 |& p; M; v2 w4 J4 c  c# D5 K) b, h, D

& {! C( j' C/ ^# \+ |首先说下结论:* r. X' Z! s( _6 {3 R7 L. V
<%@ codepage=936%>简体中文
; l5 n- p" p( l8 j: }2 t( G1 @' z9 ~3 |<%@ codepage=950%>繁体中文
& {3 E9 S$ J7 M1 h/ N- j# e<%@ codepage=65001%>UTF-8
  f" W1 K- v  K; C- G7 R* Q& \
$ q6 [7 L( N/ [) ^$ [1 P. qcodepage指定了IIS按什么编码读取传递过来的串串(表单提交,地址栏传递等)。
8 b# T5 G0 j; v也指定了所有文本变量从Unicode转换到的编码,
& k8 x4 s' S- h% I也就指定了从数据库取出的数据从Unicode转换到的编码。- q: j. a4 N. N/ {* y# D3 a3 z# V/ a
' F: f' r, G7 n4 ^3 H* p+ {. Q
关键字:
. Q* U+ w# h6 c$ R  h读取:一个串串,按简体读取是一些字,按繁体读取是一些字,串串本身编码没有变。8 W  e  N1 R) z! t7 s
转换:系统主动的转换,比如从Unicode的“化”字到Big5的“化”字,内码变成Big5的。如果Big5没有对应的字,保留Unicode形式(&#xxxx;)+ l9 h- P* k, h" p% O
3 ^7 _. T' x5 U% R' f9 S3 J
简体中文:化六个结论
: p* X- G% i' x; k5 d, N) R/ V4 RUnicode16进制形式:化六个结论5 I9 a4 o" p& q5 ?1 W
Unicode10进制形式:化六个结论8 Q9 q8 Y6 |* f

/ A- _+ d3 x( X  z4 g9 t" `: o; G5 e% B( O% l5 {
这一段时间,AJAX技术的应用使我们不得不面对网页编码所带来的种种问题,,为什么呢?% J* U4 H. a, u/ [; ?
     首先,AJAX中的XMLHttp的数据传输使用的是UTF-8编码,也就是说,如果你的页面是gb2312的话,没问题,读取出来肯定是乱码,除非你的网页是全英文的。要解决这个问题其实也很简单,首先网页的编码要设置正确,# L% z' m6 o9 I" G+ p; k1 q' h
<meta http-equiv="content-type" content="text/html; charset=UTF-8">2 t9 z7 y8 G  q9 r
1 t( q4 |" A3 ^+ i& w1 {
其次如果涉及到数据读取,例如ASP数据库操作,需要在页面第一行增加:( `7 N) t2 `/ n$ U
<%@ codepage=65001%>6 W) ?9 |3 Z7 _$ }& R; v

3 m# l5 S8 O# n/ V) y6 N) y同时保存页面的时候一定要使用UTF-8编码进行保存
; |  K* t* `1 C0 W( F% u2 s: {否则还是一样会出现乱码。  E+ ^6 m& m" @8 G( a
另外在程序的调试过程中,出现两个问题是我现在还没有完成的:7 C5 F6 k5 Z  S4 R4 j% z" p
1、页面中有一个Flash投票系统,我将所有相关的页面都改成了UTF-8编码,可是在读取的时候仍然出现乱码,查看网址:http://www.kaini.com.cn,就是页面左面的那个Flash,我现在将网页编码改成GB2312了,没有出现乱码,但是只要一改成UTF-8编码就出现乱码,有哪位能够解释一下这是怎么回事? 2、同样在http://www.kaini.com.cn中,我做了一种在线帮助系统,是ASP+AJAX完成的,我自己本机调试的时候完全正确(Winxp[SP2]+IIS),可就是上传到空间的时候就会同样的出现乱码。不知道为何?我想我的程序上面是没有问题的,有可能是服务器的组件造成的这种错误。 还有一个问题,也算是一个调查吧,各位Designer不妨谈谈自己的感受!
/ ?2 B$ {1 Z) b* u6 a' S4 ~5 }一、如何看待DIV+CSS在网页设计中的重要性?
$ ~: R) m! L/ S% m! J7 A    1、很重要,做网站最好能够通过W3C的验证;
% n' N1 t7 p% F3 @+ p: G5 z    2、很重要,但不会为了标准而标准化;: l9 o4 j# u9 Q, h" u
    3、无所谓,使用标准化设计不一定能够带来多少价值;' g5 f4 n# {3 x5 ^
    4、不用,现在使用标准化会一定程度的增加开发成本。
+ \, S! k' |0 l# s4 D5 l二、AJAX技术在网页交互程序的应用?  `* w' W; O' ^% d
    1、很好,能够增加很多很好的体验,使网站焕然一新;
3 F# s5 P8 Q5 x; H    2、不错,但是没有很好的素材网站能够学习;
0 g- a! t. \: m; M9 _3 e    3、一般,不见得这种技术能够为网页设计带来什么改变;
( B$ h6 e* C( r5 {2 N+ d3 t9 r    4、不看好这种技术。
发新话题