自己编写的中文网页在浏览器中显示乱码

问题描述:在我第一次写好了 HTML 文档之后兴奋地用~Firefox~浏览器打开,结果发现页面中的中文显示乱码?



分析:可能是因为浏览器查看网页时所使用的字符编码与编写网页时所用的字符编码不一致所造成的。解决的办法之一:为了保证两种字符编码的一致性,需要先知道自己编写网页时所采用的字符编码,以我的文本编辑器 Emacs 为例,我将其字符编码设置默认为 UTF-8。知道了自己的编码后,接下来就是使得浏览器能够识别该网页的编码,并以相应的编码方式打开该网页。可以手动设置浏览器(略),还可以让浏览器自动识别。以我的编码方式为例,自动识别只需要在 HTML 源代码 <head> 标签中加入(HTML4的时候):

<meta http-equiv="content-type" content="text/html; charset=UTF-8" >

(HTML5的时候):

<meta charset="UTF-8" >

这就是告诉浏览器打开该网页的编码方式是 UTF-8。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jspsmartupload.jar组件大家都知道,但是它本身自带的download功能并不支持中文名称的文件,在下载的时候会出现乱码,我自己编写了一个FileDownload类,放到了这个jar包,这个类用的UTF-8编码方式,所以可以对中文文件名进行很好的支持,下面是这个类的使用方法的一个介绍:<br><br>import com.jspsmart.upload.*<br>// 新建一个smartupload对象 <br>SmartUpload su = new SmartUpload() ;<br>// 初始化 <br>su.initialize(pageContext); <br>// 设定contentdisposition为null以禁止浏览器自动打开文件, <br>//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为doc时,浏览器将自动用word打开它。扩展名为pdf时,浏览器将用acrobat打开。 <br>// 下载文件 <br>su.downloadFile("/upload/aa.doc"); <br><br>下面是FileDownload的源码:<br><br>package com.jspsmart.upload ;<br><br>import java.io.BufferedInputStream ;<br>import java.io.File ;<br>import java.io.FileInputStream ;<br>import java.io.OutputStream ;<br>import java.net.URL ;<br>import javax.servlet.http.HttpServletResponse ;<br><br>public class FileDownload<br>{<br> public void downLoad( String filePath , HttpServletResponse response , boolean isOnLine ) throws Exception<br> {<br> File f = new File( filePath ) ;<br> if ( !f.exists() )<br> {<br> response.sendError( 404 , "File not found!" ) ;<br> return ;<br> }<br> BufferedInputStream br = new BufferedInputStream( new FileInputStream( f ) ) ;<br> byte[] buf = new byte[1024] ;<br> int len = 0 ;<br> response.reset() ; // 非常重要<br> // 在线打开方式<br> if ( isOnLine )<br> {<br> URL u = new URL( "file:///" + filePath ) ;<br> response.setContentType( u.openConnection().getContentType() ) ;<br> response.setHeader( "Content-Disposition" , "inline; filename=" + toUTF8(f.getName()) ) ;<br> // 文件名应该编码成UTF-8<br> }<br> // 纯下载方式<br> else<br> {<br> response.setContentType( "application/x-msdownload" ) ;<br> response.setHeader( "Content-Disposition" , "attachment; filename=" + toUTF8(f.getName()) ) ;<br> }<br> OutputStream out = response.getOutputStream() ;<br> while ( ( len = br.read( buf ) ) > 0 )<br> out.write( buf , 0 , len ) ;<br> br.close() ;<br> out.close() ;<br> }<br><br> public String toUTF8( String s )<br> {<br> StringBuffer sb = new StringBuffer() ;<br> for ( int i = 0 ; i < s.length() ; i++ )<br> {<br> char c = s.charAt( i ) ;<br> if ( c >= 0 && c <= 255 )<br> {<br> sb.append( c ) ;<br> }<br> else<br> {<br> byte[] b ;<br> try<br> {<br> b = Character.toString( c ).getBytes( "utf-8" ) ;<br> }<br> catch ( Exception ex )<br> {<br> System.out.println( ex ) ;<br> b = new byte[0] ;<br> }<br> for ( int j = 0 ; j < b.length ; j++ )<br> {<br> int k = b[j] ;<br> if ( k < 0 )<br> k += 256 ;<br> sb.append( "%" + Integer.toHexString( k ).toUpperCase() ) ;<br> }<br> }<br> }<br> return sb.toString() ;<br> }<br>}
在Myeclipse导入一个项目,有中文乱码问题,解决方法如下: 一、将整个project设置编码UTF-8(UTF-8可以最大的支持国际化) windows->Preferences->general->Workspace->Text file encoding->Other框的Text file encoding改为UTF-8。 二、对java源文件编码设置为UTF-8. windows->Preferences->general->Context Types->Text,选择Java Source File,在下面的Default encoding输入框输入UTF-8,点Update,则设置Java文件编码为UTF-8。 一、设置新建常见类型文件的默认编码格式,也就是文件保存的格式。 在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码一致,即GBK。 在简体中文系统下,ANSI 编码代表 GBK编码;在日文操作系统下,ANSI 编码代表 JIS 编码。 Window-->Preferences-->General -->content Types 在右侧窗口展开每一个子项,依次输入编码格式,如“UTF-8”点击“update”就设置好了。 例如:在以上设置,设置jsp默认编码格式为“UTF-8”,那么以后新建的jsp文件,都是以“UTF-8”的格式保存的。 同样设置java默认编码格式为“UTF-8”,那么以后新建的java文件,都是以“UTF-8”的格式保存的。 设置html默认编码格式为“UTF-8”,那么以后新建的html文件,都是以“UTF-8”的格式保存的。 以上设置了文件的保存编码格式,默认的打开方式(解码方式)会跟保存编码格式一样。 二、设置新建其他文件的默认编码格式,即文件保存格式。 在第一项设置,只是设置了常用文件类型的编码格式。如果新建一个文件,没有后缀名,也就是不指名文件类型,那么MyEclipse无法判断该用何种编码格式保存,就用操作系统默认文件保存编码格式GBK进行保存。这个默认保存编码格式,可用如下方法修改: window-->preferences-->general-->workspace 在右侧 Text file encoding ->Other 选择UTF-8 三、单个文件查看编码格式(也就是打开文件用的编码格式)更改。 这个方法没有更改文件的编码格式,只是告诉MyEclipse用何种编码格式进行解码。 在要查看的文件上,如文件Test.java上右键-->Properties-->Resource在右侧Text file encoding ->Other,可以进行修改。 比如说,你在“一”里面设置*.java文件的编码格式为“UTF-8”,那么你打开后缀名为java的文件,默认就会以“UTF-8”格式进行解码。如果有人给了你一个编写好的java文件,但是他是用GBK编码保存的,那么你现在打开的时候,会显示乱码。在这个文件上右键-->Properties-->Resource在右侧Text file encoding ->Other ->GBK,就可以正常显示里面的内容了。 四、单个工程workspace默认编码设置。 在工程上右键-->Properties-->Resource在右侧Text file encoding ->Other,可以进行修改。 五、指定MyEclipse编写文件时页面内容数据编码格式(其实就是参数的默认设置),如html,或者jsp网页提交表单前,用户输入的信息编码格式,配置文件xml的参数编码格式等。 主要是通知浏览器或服务器,传输数据的编码格式。告诉浏览器用何种编码来解析html或者JSP文件。 window-->Preferences-->MyEclipse-->Files and Editors-->选择子项-->Encoding 例如:选择UTF-8, 新建jsp文件的时候,contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"就会自动生成,不用每次去手工更改了。 新建html文件的时候,http-equiv="Content-Type" content="text/html; charset=UTF-8" 新建xml文件的时候, 六、eclipse的控制台显示所使用的编码是继承了workspace设置的字符编码格式(也就是上面“二”设置的编码格式)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值