zoukankan      html  css  js  c++  java
  • 关于网页中图片为中文名无法显示的解决办法

    转载:http://lofei117.iteye.com/blog/1074182

    网页中很多时候要用到图片,通过img标签或者滤镜来显示在页面上。而当文件名为中文名时会遇到图片无法正确加载,导致无法显示。 
    解决办法如下: 
    1:改变服务器的配置,使服务器支持utf-8来显示图片。这个经过测试是有效的,但是有一点是服务器配置修改了以后,再使用request来获取参数时,中文乱码的问题。通过System.out.print来打印出来的参数是正确的,但是赋值给String对象后却不是正确的值,再通过String对象的getBytes方法来转换以后仍然不正确。所以放弃了这个方法。

    参照:

    在html页面中,引用了带汉字的图片,形如<img src="/目录/子目录/图片名字.jpg" />,如果没有在tomcat配置URIEncoding,则无法显示。修改方法:

    在tomcat的server.xml中加入URIEncoding="utf-8" (网页的编码是utf-8)
        <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8" redirectPort="8443" />


    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 
    然后文件名再加上相应的扩展名即可。既可以存入数据库也可以直接保存文件名。

  • 相关阅读:
    k8s用kubectl管理应用升级,服务发布与回滚,扩缩容
    K8s遇到问题解决思路
    Kafka常用命令之kafka-topics.sh
    Kafka常用命令之kafka-console-consumer.sh
    maven idea设置查找依赖优先从指定的本地仓库获取
    Java isAlive()方法的作用
    intellij 格式化 代码
    kafka后台启动的命令
    Kafka 集群部署,启动,关闭,命令行操作
    jquery请求ajax对返回数据解析
  • 原文地址:https://www.cnblogs.com/navyhj/p/7143140.html
Copyright © 2011-2022 走看看