解决Java工程路径中含有中文的情况

问题:

当Java工程路径中含有中文时,得不到正确的路径

***

解决:

这其实是编码转换的问题。当我们使用ClassLoader的getResource方法获取路径时,获取到的路径被URLEncoder.encode(path,"utf-8")编码了,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,所以我们可以调用URLDecoder.decode()方法进行解码,以便得到原始的中文及空格路径。

Java代码 :

String packagePath = url.getPath().replaceAll("%20","");//解决路径中含有空格的情况

packagePath = java.net.URLDecoder.decode(packagePath,"utf-8"); //解决路径包含中文的情况

***

结果:

/D:/Java%e7%a8%8b%e5%ba%8f%ef%bc%88idea)/smartframework/core/target/classes/

解码之后:/D:/Java程序(idea)/smartframework/core/target/classes/

***

关于解码和编码

URLEncoder.encode(String s, String enc)

使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式

URLDecoder.decode(String s, String enc)

使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码。

发送的时候使用URLEncoder.encode编码,接收的时候使用URLDecoder.decode解码,都按指定的编码格式进行编码、解码,可以保证不会出现乱码

时间: 2024-11-07 04:40:09

解决Java工程路径中含有中文的情况的相关文章

python爬虫:解决请求路径中含义中文或特殊字符

一.解决请求路径中含义中文或特殊字符(/n,/t等): 1 httpurl=urllib.parse.quote(new_url, safe=string.printable)  注意:new_url必须是只有一个单引号或者双引号,如果是下面这个既有单引号,也有双引号,就会出现urlerror: new_url='"http://news.sina.com.cn/o/2017-06-08/doc-ifyfzaaq5698972.shtml"'

[Liferay6.2]启动Tomcat提示APR不能在java类库路径中被找到的解决办法

问题描述 启动liferay之后,在控制台中打印出会打印出以下信息: 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:…… 意思是可让生产环境中达到最佳性能的Apache Tomcat本地库为基础的APR(Apache可移植运行库)不能在java类库路径中

路径或文件名中含有中文的jar文件双击启动不了 -> Java7的Bug?

至从安装了java7后,才发现部分可执行的jar文件双击都启动不了了. 比如所有的jar文件放在桌面上双击启动不了. 比如所有的文件名中含有中文的jar文件双击启动不了. 比如一个 abc.jar 放在c:\下可以双击启动,但移动到桌面上,双击启动不了了. 比如一个放在c:\下的abc.jar可以双击启动,如果移动到c:\我的jar文件夹\abc.jar 双击启动不了了. 以前在java6下好像没出现这样的事情... 2011-10-13

解决Centos 6.3 中 gedit中文乱码问题

1.安装gconf-editor yum list | grep conf-editor yum install gconf-editor 2.运行gconf-editor 设置: apps  ---> gedit-2  --->  preferences  ----> encoding auto-detected 项添加Add New list value: GB2312 shown_in_menu 项添加 New list value: GB2312  解决Centos 6.3 中

python3 网址路径中带中文的处理办法

由于python目前不能直接处理中文路径,必须要转化一下,如下例子是下载图片(名字为中文的): def getInfo(self,imageurl):        response = urllib.request.urlopen(imageurl).read().decode('utf-8')#         with open("text1.txt",'w',encoding='utf-8') as file:#             file.write(response)

url中含有中文造成文件下载失败

一.场景 前段时间由于安卓客户端并发播放视频的需求量太大,造成视频卡顿的现象,因此使用java做了一套缓存视频的服务,把远程服务器的视频下载到内网服务器来解决这个问题. 二.问题引入 可是在使用流进行视频下载的时候,不含有中文的url会正常下载视频,包含中文的就会下载失败,后来经过一番查找解决办法之后发现只需要将url中的中文进行UTF-8转码即可,需要注意的是: 不能对整个url进行UTF-8转码,必须用正则表达式对url进行中文过滤板,只转码中文即可: 正则匹配方法: public stat

java向数据库中插入中文出现乱码

引用 http://www.cnblogs.com/jack204/archive/2012/09/11/2680106.html 主要解决方向,JAVA与MYSQL中编码要统一.通常采用UTF-8. 这里虽然你在项目中设置了数据库采用UTF-8,但是那里不包括连接方式之类的. 1.查询自身MYSQL编码方式 MySQL默认编码是latin1 mysql> show variables like 'character%'; +--------------------------+--------

分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题

之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/data/www/zabbix),打开 locales.inc.php文件[[email protected] include]# pwd/data/www/zabbix/include[[email protected] include]# vim locales.inc.php 然

处理get中的中文乱码情况

1 最基本的乱码问题.这个乱码问题是最简单的乱码问题.一般新会出现.就是页面编码不一致导致的乱码.<%@ page language="java" pageEncoding="UTF-8"%><%@ page contentType="text/html;charset=iso8859-1"%><html><head><title>中文问题</title><meta h