zoukankan      html  css  js  c++  java
  • 开发中的乱码问题

    下面总结一下这些常用编码的概念,很多初级程序员只知道这些是一种编码,但不知道真正的作用。

    ASCLL:这种编码计算机专业的都学过,是一种英文编码规则,如果是英语系统用这种编码就够了。
    单字节,最多能表达256种字符。
    ISO8859-(1-15):它是对ASCLL编码的扩展 所以也是单字节的。ISO(国际标准组织)不把中文当回事,
    很多小国家的文字都扩展了如:冰岛语之类的,就是不扩展中文。其实不是歧视,而已是那些国家的
    文字都是由一串字母组成的,比较相似,编码规则一样。如果中文全部用拼音来表达的话,那就不用出现后面的中文编码了。

    GB2312:中国人终于站起来了,我们自己也搞了一套编码规则。不过只有简体。采用双字节(具体原理百度一下这里就讲太多了)。
    GBK:GB2312还是不够用,扩展一下吧。繁体也进来吧!一家人。
    unicode:统一字符编码标准集,把上面所有的都包括进来。采用双字节,没办法,因为中文是双字节的,只能预留多点。
    urt-8:中文就是麻烦,浪费了很多空间,英文用1个字节就可以了,就一定用2个字节。根据特点自己分配空间。有些字符还会出现三个字符。


    系统中能所有显示的字符,都会根据系统字体集中的编码来解码现实,如何没有的话,就会出现乱码。
    如:如果你的系统是英文系统,而英文系统里没有中文的编码的话,就会出现乱码。
    重点来了:做WEB开发的话,必须知道,web容器,IE,POST/GET,java/C#或其他语言,JDBC,它们都是用什么编码的。
    IE可以自由选择编码。
    java/C#:unicode
    web容器:ISO8859-1.
    JDBC:ISO8859-1.
    POST/GET:ISO8859-1,但可以在获取GET/POST传过来的数据之前,就先对request过来的数据进行转码。
    当然也可以在服务器每次响应浏览器时,就设置好浏览器GET/POST过来的编码,response.setcontenttype("text/html;charset=GBK");
    发开中经常会出现?乱码:unicode转其他编码时,如果没有对应的编码,就会出现?
    而反过来其他编码转unicode,就会出现?0xfffd.

  • 相关阅读:
    05docker仓库---搭建本地仓库
    04docker容器操作
    03docker镜像
    02docker核心概念
    01docker基本概念
    find命令
    docker中ubuntu源更新慢加速 换为国内源 Debian10源
    计划任务 at & crond tbc
    mysql mysqladmin常用命令
    mariadb10安装
  • 原文地址:https://www.cnblogs.com/wolf12/p/6914871.html
Copyright © 2011-2022 走看看