文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[原创] 如何让 Apache 支持中文 URL

[原创] 如何让 Apache 支持中文 URL

时间:2008-03-09  来源:ailms

和中文显示有关 :

 

1、要有含有该字符的 character repertoire (不是字符集,就是只包含抽象的字符,不包含字符的编码)。 Unicode 这个 character repertoire 包含了几乎所有可能的字符。例如 en_US.UTF-8 中的 UTF-8 指的就是使用 Unicode 这个 character repertoire ,注意!即使前面是 en_US ,它也可以正确显示中文,因为它使用的是 Unicode 这个“超大字符集”,里面已经包含了中文。但这个环境下默认不能输入中文,这是由 en_US 决定的,或者说由 LC_CTYPE 决定的。 它决定了你可以输入的 Unicode 字符的范围 。

2、必须知道该字符的编码(character encoding)是什么类型的,例如中文的有 GBK, GB12345, GB18030—2000, Big5, Big5+, HKSCS, Big5+HKSCS, CNS 11643-1992、UTF-8、GB2312-1980, GB13000),具体的 code value 是多少(内码)。 Unicode 这个 character repertorie 所使用的编码有好几种,例如 UTF-8、UTF-16、UTF-32 等

3、有相应的字体文件

4、要修改排序顺序,只需要修改 LC_COLLATE 就可以了 (强烈建议设置)

5、要修改显示时间,只需要修改 LC_TIME 就可以了 (看个人习惯)

 

 
和中文 URL 有关 :

 
6、要输入中文,只需要修改 LC_CTYPE 为 zh_CN.UTF-8 就可以了

 
本人的 Locale 设置


[root@dhcp ~]# locale

LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME=C
LC_COLLATE=C
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
[root@dhcp ~]#


一、中文显示+英文路径


       1、locale=zh_CN.GB2312
 
       2、文件编码 GB2312/GBK/GB18030

       3、没有使用 <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">行

       4、SecureCRT 编码设置为 <默认>

       5、浏览结果
     
              a)IE (总是以 UTF08 发送 URL=是):乱码(自动选择的结果是 UTF-8)。但选择为 “GB2312” 后就可以显示中文

              b)IE (总是以 UTF08 发送 URL=否):同上

              c)FireFox :同上。默认也是选择 UTF-8 显示。选择 GBK、GB18030、GB2312 都可以正常显示中文


       1、locale=zh_CN.GB2312
 
       2、文件编码 GB2312/GBK/GB18030
 
       3、有 <META http-equiv="Content-Type" content="text/html; charset=GB2312"> 行
 
       4、SecureCRT 编码设置为 <默认>
 
       5、浏览结果
 
              a)IE (总是以 UTF08 发送 URL=是):同上
 
              b)IE (总是以 UTF08 发送 URL=否):同上
 
              c)FireFox :同上


       1、locale=zh_CN.GB2312

       2、文件编码 GB2312/GBK/GB18030
 
       3、有 <META http-equiv="Content-Type" content="text/html; charset=GB18030"> 行
 
       4、SecureCRT 编码设置为 <默认>
 
       5、浏览结果

              a)IE (总是以 UTF08 发送 URL=是):同上
 
              b)IE (总是以 UTF08 发送 URL=否):同上
 
              c)FireFox :同上      

      

       1、locale=zh_CN.GB2312
 
       2、文件编码 GB2312/GBK/GB18030
 
       3、有 <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 行
 
       4、SecureCRT 编码设置为 <默认>
 
       5、浏览结果
 
              a)IE (总是以 UTF08 发送 URL=是):同上
 
              b)IE (总是以 UTF08 发送 URL=否):同上
 
              c)FireFox :同上      


       1、locale=zh_CN.UTF-8
 
       2、文件编码 UTF-8
 
       3、没有 <META  http-equiv="Content-Type" content="text/html; charset=UTF-8"> 行
 
       4、SecureCRT 设置为 UTF-8 编码
 
       5、vi 的 fileencoding 为 utf-8 ,fileencoding=(空)

       6、浏览结果

              a)IE (总是以 UTF08 发送 URL=是):正常显示,不需要手工选择 GB2312 (如果手工选择 GB2312 反而会显示为乱码)!!!

              b)IE (总是以 UTF08 发送 URL=否):同上 !!!

              c)FireFox :正常显示 !!!

       1、locale=zh_CN.UTF-8
 
       2、文件编码 UTF-8
 
       3、有 <META  http-equiv="Content-Type" content="text/html; charset=GB2312"> 行
 
       4、SecureCRT 设置为 UTF-8 编码
 
       5、vi 的 fileencoding 为 utf-8 ,fileencoding=(空)
 
       6、浏览结果

              a)IE (总是以 UTF08 发送 URL=是):正常显示。虽然 charset=GB2312 ,但如果选择 GB2312 编码反而会乱码
 
              b)IE (总是以 UTF08 发送 URL=否):同上 !!!
 
              c)FireFox :正常显示 !!!

二、中文显示 + 中文 URL

     
       1、locale=zh_CN.UTF-8
 
       2、文件编码 UTF-8
 
       3、没有 <META> 行
 
       4、SecureCRT 设置为 UTF-8 编码
 
       5、vi 的 fileencoding 为 utf-8 ,fileencoding=(空)
 
       6、浏览结果

A) IE (总是以 UTF-8 发送 URL = 是) :可以看到 URL 是中文的路径

B) IE (总是以 UTF-8 发送 URL = 否) :可以看到 URL 处也显示为中文路径


C)FireFox :都可以正常显示,但 URL 处是 %-encoded 后的 URL ,不是象 IE 那样的中文路径名

 D)我们来看一下这个字符串是怎么转成 “命令列表” 这4个字的




E)这种方法就算对于中英文混杂的路径也同样适用






相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载