tft每日頭條

 > 科技

 > 字符集與字符編碼

字符集與字符編碼

科技 更新时间:2024-10-01 13:22:25

編碼簡介

我們web程序在接收請求并處理過程中,如果不注意編碼格式及解碼格式,很容易導緻中文亂碼,引起這個問題的原因到底在哪裡?如何解決?我們這個小節将會讨論此問題。

說到這個問題我們先來說一說字符集。

什麼是字符集,就是各種字符的集合,包括漢字,英文,标點符号等等。各國都有不同的文字、符号。這些文字符号的集合就叫字符集。

現有的字符集ASCII、GB2312、BIG5、GB18030、Unicode等

這些字符集,集合了很多的字符,然而,字符要以二進制的形式存儲在計算機中,我們就需要對其進行編碼,将編碼後的二進制存入。取出時我們就要對其解碼,将二進制解碼成我們之前的字符。這個時候我們就需要制定一套編碼解碼标準。否則就會導緻出現混亂,也就是我們的亂碼。

2.編碼與解碼

u 編碼:将字符轉換為二進制數

漢字

編碼方式

編碼

二進制

‘中’

GB2312

D6D0

1101 0110-1101 0000

UTF-16

4E2D

0100 1110-0010 1101

UTF-8

E4B8AD

1110 0100-1011 1000-1010 1101

u 解碼:将二進制數轉換為字符

1110 0100-1011 1000-1010 1101 → E4B8AD → ’中’

u 亂碼:一段文本,使用A字符集編碼,使用B字符集解碼,就會産生亂碼。所以解決亂碼問題的根本方法就是統一編碼和解碼的字符集。

字符集與字符編碼(字符編碼問題講解)1

3.解決亂碼:

解決方法就是統一字符編碼。

字符集與字符編碼(字符編碼問題講解)2

亂碼情況:

3.1接收中文請求參數

1)POST請求:post請求提交了中文。在獲取參數值之前,設置請求的解碼格式,使其和頁面保持一緻。我們以後都使用utf-8編碼,它也稱作萬國碼,集合了基本所有的字符。

解決方法:request.setCharacterEncoding("utf-8");

2)GET請求:GET請求參數是在地址後面的。不能使用上述方法。我們需要修改tomcat的配置文件。需要在Server.xml文件修改Connector标簽,添加URIEncoding="utf-8"屬性。

字符集與字符編碼(字符編碼問題講解)3

3.2向浏覽器發送有中文字符的響應

向浏覽器發送響應的時候,要告訴浏覽器,我使用的字符集是哪個,浏覽器就會按照這種方式來解碼。如何告訴浏覽器響應内容的字符編碼方案。很簡單。

解決方法:response.setContentType("text/html;charset=utf-8");

或者使用這兩句組合:

response.setCharacterEncoding("utf-8");

response.setHeader("Content-Type", "text/html;charset=utf-8");

我們一般使用response.setContentType("text/html;charset=utf-8");


精彩閱讀:

web前端之二叉搜索樹

web前端渲染優化

Webpack優化構建速度

常見web安全及防護原理

WebView和原生是如何通信

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved