关于网页中图片为中文名无法显示的解决办法

本文介绍了在网页中加载中文文件名图片时遇到的问题及解决方案。一种方法是更改服务器配置以支持UTF-8编码,但可能会引入新的乱码问题。另一种方法是对中文文件名进行UTF-8编码,并替换特定字符以实现正常显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网页中很多时候要用到图片,通过img标签或者滤镜来显示在页面上。而当文件名为中文名时会遇到图片无法正确加载,导致无法显示。
解决办法如下:
1:改变服务器的配置,使服务器支持utf-8来显示图片。这个经过测试是有效的,但是有一点是服务器配置修改了以后,再使用request来获取参数时,中文乱码的问题。通过System.out.print来打印出来的参数是正确的,但是赋值给String对象后却不是正确的值,再通过String对象的getBytes方法来转换以后仍然不正确。所以放弃了这个方法。参照:http://blog.sina.com.cn/s/blog_6396f2610100l6dg.html
2:我自己想的方法,可能已经有其他人想出来了。就是给中文名用utf-8编码,出来一个带有%号的字符串,对应相应的文件名。当然这还不够,因为这个文件名浏览器会自动转义解码为对应的中文名,图片还是无法显示。于是我用了String对象的replace方法,将文件名的%全部替换为-;然后就可以正确显示图片了。缺点就是查找文件名不易于辨认识别。


编码问题的确是很让人寒心的,尤其是涉及到中文的地方。
mark了,希望对大家有点帮助,也给自己做点笔记,积累自己学到的知识。

String name ="哈哈哈";
String str = java.net.URLEncoder.encode(name, "utf-8");
//转义后的为%E5%93%88%E5%93%88%E5%93%88
str = str.replace("%", "-");
//替换后为-E5-93-88-E5-93-88-E5-93-88
然后文件名再加上相应的扩展名即可。既可以存入数据库也可以直接保存文件名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值