V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Can I use?
http://caniuse.com/
Less
http://lesscss.org
Cool Libraries
Bootstrap from Twitter
Jetstrap
whatisnew
V2EX  ›  CSS

CSS @charset "UTF-8"

  •  
  •   whatisnew · 2015-05-22 09:59:40 +08:00 · 3701 次点击
    这是一个创建于 3468 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么有些人喜欢给 css 第一行加一个 @charset "UTF-8" 啊?有必要吗?

    8 条回复    2015-05-24 16:17:54 +08:00
    kalasoo
        1
    kalasoo  
       2015-05-22 10:02:19 +08:00
    有,如果在 CSS 里定义了一个 content 是 ♥ ,只有 UTF8 可以显示
    Csineneo
        2
    Csineneo  
       2015-05-22 10:03:50 +08:00
    如果 font-family 有中文,如果 content 有中文
    qiayue
        3
    qiayue  
       2015-05-22 10:08:43 +08:00
    这句话是告诉浏览器,本 css 文件按照 utf8 编码去读取
    banri
        4
    banri  
       2015-05-22 10:09:33 +08:00
    不是非常必要。

    外部资源(CSS、JS)在加载时会使用HTML头部声明的编码进行解析,而HTML头部一般都会声明UTF-8,所以在CSS中声明其实是没有必要的。

    但是也不是完全没有用,因为如果他人查看源代码时,CSS中的中文or其它特殊字符是会显示成乱码的(因为浏览器在环境下默认是GBK,而开发者编写时一般都是UTF-8),但如果在CSS第一行加上@charset "UTF-8",则可以正常显示成中文了。

    于是他的作用就是可以在使用浏览器查看源码时,可以很轻松的读懂中文注释。。。
    abelyao
        5
    abelyao  
       2015-05-22 10:10:02 +08:00 via iPhone
    加的好处比不加多,至少表面好处是更多。
    banri
        6
    banri  
       2015-05-22 10:10:33 +08:00
    *浏览器在中文环境下
    otakustay
        7
    otakustay  
       2015-05-22 10:16:38 +08:00
    这和HTML里加<meta charset="utf-8">差不多
    如果你的服务器能正确输出Content-Type头并且在头中声明charset,那么这一句是没有必要的;反之如果你的服务器控制不了HTTP头,最好还是加着
    nekoyaki
        8
    nekoyaki  
       2015-05-24 16:17:54 +08:00
    想起了之前客户那边的技术人员,完全不知道为何要加utf8,估计是百度知道还不是哪儿搜到的,然后调用我们的API乱码了,还一直以为是我们的问题。后来我一看,人eclipse里赫然写着的字符集全都是GBK,偏要强行冒充UTF8.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5609 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:54 · PVG 15:54 · LAX 23:54 · JFK 02:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.