Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xzxt-control
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
xzxt-control
Commits
9c1ab7bc
Commit
9c1ab7bc
authored
Nov 15, 2018
by
chang_chao@founder.com.cn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
上传乱码
parent
b7e4ed98
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
206 additions
and
29 deletions
+206
-29
src/main/java/com/cc/common/util/ChangeCharset.java
+149
-0
src/main/java/com/cc/common/util/HttpClientUtil.java
+9
-0
src/main/java/com/cc/controller/UploadController.java
+15
-3
src/main/java/com/cc/service/serviceimpl/ServiceIServiceImpl.java
+33
-26
No files found.
src/main/java/com/cc/common/util/ChangeCharset.java
0 → 100644
View file @
9c1ab7bc
package
com
.
cc
.
common
.
util
;
import
java.io.UnsupportedEncodingException
;
/**
* 转换字符串的编码
*/
public
class
ChangeCharset
{
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
public
static
final
String
US_ASCII
=
"US-ASCII"
;
/** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */
public
static
final
String
ISO_8859_1
=
"ISO-8859-1"
;
/** 8 位 UCS 转换格式 */
public
static
final
String
UTF_8
=
"UTF-8"
;
/** 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序 */
public
static
final
String
UTF_16BE
=
"UTF-16BE"
;
/** 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序 */
public
static
final
String
UTF_16LE
=
"UTF-16LE"
;
/** 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识 */
public
static
final
String
UTF_16
=
"UTF-16"
;
/** 中文超大字符集 */
public
static
final
String
GBK
=
"GBK"
;
/**
* 将字符编码转换成US-ASCII码
*/
public
String
toASCII
(
String
str
)
throws
UnsupportedEncodingException
{
return
this
.
changeCharset
(
str
,
US_ASCII
);
}
/**
* 将字符编码转换成ISO-8859-1码
*/
public
String
toISO_8859_1
(
String
str
)
throws
UnsupportedEncodingException
{
return
this
.
changeCharset
(
str
,
ISO_8859_1
);
}
/**
* 将字符编码转换成UTF-8码
*/
public
String
toUTF_8
(
String
str
)
throws
UnsupportedEncodingException
{
return
this
.
changeCharset
(
str
,
UTF_8
);
}
/**
* 将字符编码转换成UTF-16BE码
*/
public
String
toUTF_16BE
(
String
str
)
throws
UnsupportedEncodingException
{
return
this
.
changeCharset
(
str
,
UTF_16BE
);
}
/**
* 将字符编码转换成UTF-16LE码
*/
public
String
toUTF_16LE
(
String
str
)
throws
UnsupportedEncodingException
{
return
this
.
changeCharset
(
str
,
UTF_16LE
);
}
/**
* 将字符编码转换成UTF-16码
*/
public
String
toUTF_16
(
String
str
)
throws
UnsupportedEncodingException
{
return
this
.
changeCharset
(
str
,
UTF_16
);
}
/**
* 将字符编码转换成GBK码
*/
public
String
toGBK
(
String
str
)
throws
UnsupportedEncodingException
{
return
this
.
changeCharset
(
str
,
GBK
);
}
/**
* 字符串编码转换的实现方法
* @param str 待转换编码的字符串
* @param newCharset 目标编码
* @return
* @throws UnsupportedEncodingException
*/
public
String
changeCharset
(
String
str
,
String
newCharset
)
throws
UnsupportedEncodingException
{
if
(
str
!=
null
)
{
//用默认字符编码解码字符串。
byte
[]
bs
=
str
.
getBytes
();
//用新的字符编码生成字符串
return
new
String
(
bs
,
newCharset
);
}
return
null
;
}
/**
* 字符串编码转换的实现方法
* @param str 待转换编码的字符串
* @param oldCharset 原编码
* @param newCharset 目标编码
* @return
* @throws UnsupportedEncodingException
*/
public
String
changeCharset
(
String
str
,
String
oldCharset
,
String
newCharset
)
throws
UnsupportedEncodingException
{
if
(
str
!=
null
)
{
//用旧的字符编码解码字符串。解码可能会出现异常。
byte
[]
bs
=
str
.
getBytes
(
oldCharset
);
//用新的字符编码生成字符串
return
new
String
(
bs
,
newCharset
);
}
return
null
;
}
public
static
void
main
(
String
[]
args
)
throws
UnsupportedEncodingException
{
ChangeCharset
test
=
new
ChangeCharset
();
String
str
=
"This is a 中文的 String!"
;
System
.
out
.
println
(
"str: "
+
str
);
String
gbk
=
test
.
toGBK
(
str
);
System
.
out
.
println
(
"转换成GBK码: "
+
gbk
);
System
.
out
.
println
();
String
ascii
=
test
.
toASCII
(
str
);
System
.
out
.
println
(
"转换成US-ASCII码: "
+
ascii
);
gbk
=
test
.
changeCharset
(
ascii
,
ChangeCharset
.
US_ASCII
,
ChangeCharset
.
GBK
);
System
.
out
.
println
(
"再把ASCII码的字符串转换成GBK码: "
+
gbk
);
System
.
out
.
println
();
String
iso88591
=
test
.
toISO_8859_1
(
str
);
System
.
out
.
println
(
"转换成ISO-8859-1码: "
+
iso88591
);
gbk
=
test
.
changeCharset
(
iso88591
,
ChangeCharset
.
ISO_8859_1
,
ChangeCharset
.
GBK
);
System
.
out
.
println
(
"再把ISO-8859-1码的字符串转换成GBK码: "
+
gbk
);
System
.
out
.
println
();
String
utf8
=
test
.
toUTF_8
(
str
);
System
.
out
.
println
(
"转换成UTF-8码: "
+
utf8
);
gbk
=
test
.
changeCharset
(
utf8
,
ChangeCharset
.
UTF_8
,
ChangeCharset
.
GBK
);
System
.
out
.
println
(
"再把UTF-8码的字符串转换成GBK码: "
+
gbk
);
System
.
out
.
println
();
String
utf16be
=
test
.
toUTF_16BE
(
str
);
System
.
out
.
println
(
"转换成UTF-16BE码:"
+
utf16be
);
gbk
=
test
.
changeCharset
(
utf16be
,
ChangeCharset
.
UTF_16BE
,
ChangeCharset
.
GBK
);
System
.
out
.
println
(
"再把UTF-16BE码的字符串转换成GBK码: "
+
gbk
);
System
.
out
.
println
();
String
utf16le
=
test
.
toUTF_16LE
(
str
);
System
.
out
.
println
(
"转换成UTF-16LE码:"
+
utf16le
);
gbk
=
test
.
changeCharset
(
utf16le
,
ChangeCharset
.
UTF_16LE
,
ChangeCharset
.
GBK
);
System
.
out
.
println
(
"再把UTF-16LE码的字符串转换成GBK码: "
+
gbk
);
System
.
out
.
println
();
String
utf16
=
test
.
toUTF_16
(
str
);
System
.
out
.
println
(
"转换成UTF-16码:"
+
utf16
);
gbk
=
test
.
changeCharset
(
utf16
,
ChangeCharset
.
UTF_16LE
,
ChangeCharset
.
GBK
);
System
.
out
.
println
(
"再把UTF-16码的字符串转换成GBK码: "
+
gbk
);
String
s
=
new
String
(
"中文"
.
getBytes
(
"UTF-8"
),
"UTF-8"
);
System
.
out
.
println
(
s
);
}
}
\ No newline at end of file
src/main/java/com/cc/common/util/HttpClientUtil.java
View file @
9c1ab7bc
...
...
@@ -82,6 +82,14 @@ public class HttpClientUtil {
}
// 模拟表单
UrlEncodedFormEntity
entity
=
new
UrlEncodedFormEntity
(
paramList
);
//json 数据
//StringEntity entity1 = new StringEntity(paramList.toString(),"utf-8");//解决中文乱码问题
//entity.setContentEncoding("UTF-8");
//entity.setContentType("application/json");
//httpPost.setEntity(entity1);
httpPost
.
setEntity
(
entity
);
}
// 执行http请求
...
...
@@ -132,4 +140,5 @@ public class HttpClientUtil {
return
resultString
;
}
}
src/main/java/com/cc/controller/UploadController.java
View file @
9c1ab7bc
...
...
@@ -51,8 +51,18 @@ public class UploadController {
model
.
addAttribute
(
"msg"
,
"上传失败,请选择文件"
);
return
"upload"
;
}
String
fileName
=
file
.
getOriginalFilename
();
//String fileName1="";
/* if (fileName != null) {
//用默认字符编码解码字符串。
byte[] bs = fileName.getBytes();
//用新的字符编码生成字符串
try {
fileName1=new String(bs, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
}*/
String
filePath
=
documentPath
;
//String filePath = request.getSession().getServletContext().getRealPath("public/");
File
dest
=
new
File
(
filePath
+
fileName
);
...
...
@@ -82,11 +92,13 @@ public class UploadController {
}
@GetMapping
(
value
=
"/download"
)
public
void
Download
(
HttpServletResponse
res
,
String
fileName
)
{
public
void
Download
(
HttpServletResponse
res
,
String
fileName
)
throws
UnsupportedEncodingException
{
//String fileName = "111.jpg";
res
.
setHeader
(
"content-type"
,
"application/octet-stream"
);
res
.
setContentType
(
"application/octet-stream"
);
res
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
//下载中文乱码
res
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+(
java
.
net
.
URLEncoder
.
encode
(
fileName
,
"UTF-8"
)).
trim
());
byte
[]
buff
=
new
byte
[
1024
];
BufferedInputStream
bis
=
null
;
OutputStream
os
=
null
;
...
...
src/main/java/com/cc/service/serviceimpl/ServiceIServiceImpl.java
View file @
9c1ab7bc
...
...
@@ -30,42 +30,49 @@ public class ServiceIServiceImpl implements ServiceService {
//chent 表里没有,版本控制用 begin
for
(
int
i
=
0
;
i
<
serviceslist
.
size
();
i
++){
Services
entity
=
serviceslist
.
get
(
i
);
String
url
=
entity
.
getServletPath
()+
"\\webapps\\"
+
entity
.
getApplyName
()+
"\\WEB-INF\\classes\\
"
;
url
=
url
.
replace
(
"/"
,
"\\"
);
long
timeStart
=
System
.
currentTimeMillis
();
String
url
=
entity
.
getServletPath
()+
"/webapps/"
+
entity
.
getApplyName
()+
"/WEB-INF/classes/
"
;
System
.
out
.
println
(
"url============="
+
url
);
//
long timeStart = System.currentTimeMillis();
// File file = new File(url+"version.txt");//文件路径
// FileReader fileReader = new FileReader(file);
// LineNumberReader reader = new LineNumberReader(fileReader);用这个读取,虽然reader.getLineNumber()能获取行号,但是是中文是乱码的,所以用BufferedReader读取了。
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
new
FileInputStream
(
url
+
"version.txt"
),
"UTF-8"
));
int
number
=
1
;
//设置指定行数
String
line
=
""
;
int
lines
=
0
;
String
str1
=
""
;
int
[]
numbers
=
new
int
[
2
];
int
numberCount
=
0
;
//应该找到包含版本的行数,然后读取这两个行数中间。带#号的内容
//先得到第一行的版本号
//为了确保文件一定在之前是存在的,将字符串路径封装成File对象
File
file
=
new
File
(
url
+
"version.txt"
);
String
version
=
""
;
String
versionDetail
=
""
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
lines
++;
if
(
lines
==
number
)
{
str1
=
line
.
substring
(
line
.
indexOf
(
"="
)+
1
,
line
.
length
());
version
=
str1
;
// System.out.println("第" + lines + "的内容是:" + str1 + "\n");
}
else
{
if
(
line
.
contains
(
str1
)){
numbers
[
numberCount
]=
lines
;
numberCount
++;
if
(!
file
.
exists
()){
//throw new RuntimeException("要读取的文件不存在");
version
=
"暂无版本"
;
versionDetail
=
"暂无版本信息"
;
}
else
{
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
new
FileInputStream
(
file
),
"UTF-8"
));
int
number
=
1
;
//设置指定行数
String
line
=
""
;
int
lines
=
0
;
String
str1
=
""
;
int
[]
numbers
=
new
int
[
2
];
int
numberCount
=
0
;
//应该找到包含版本的行数,然后读取这两个行数中间。带#号的内容
//先得到第一行的版本号
while
((
line
=
reader
.
readLine
())
!=
null
)
{
lines
++;
if
(
lines
==
number
)
{
str1
=
line
.
substring
(
line
.
indexOf
(
"="
)+
1
,
line
.
length
());
version
=
str1
;
// System.out.println("第" + lines + "的内容是:" + str1 + "\n");
}
else
{
if
(
numbers
[
0
]>
1
&&
numbers
[
1
]==
0
&&!
""
.
equals
(
line
)){
// System.out.println("第" + lines + "的内容是:" + line + "\n");
versionDetail
=
versionDetail
+
line
;
if
(
line
.
contains
(
str1
)){
numbers
[
numberCount
]=
lines
;
numberCount
++;
}
else
{
if
(
numbers
[
0
]>
1
&&
numbers
[
1
]==
0
&&!
""
.
equals
(
line
)){
// System.out.println("第" + lines + "的内容是:" + line + "\n");
versionDetail
=
versionDetail
+
line
;
}
}
}
}
}
entity
.
setVersion
(
version
);
entity
.
setVersionDetail
(
versionDetail
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment