首页 > 代码库 > 妈妈再也不担心我的编码问题了。中文编码融汇贯通,windows,django,python,java,html
妈妈再也不担心我的编码问题了。中文编码融汇贯通,windows,django,python,java,html
用django 写一个小web 应用。 该应用里调用的一个业务相关jar 包, 并把jar 包的返回值 显示出来。
就是在windows环境下,使用django框架,用python语言调用java 的jar包,输出内容到,html中。涉及了一堆的编码问题。
过程中不是乱码,就是乱码。总算在高人指点下搞定。特此记录。妈妈再也不担心我的编码问题了。
1. python 文件头 ,表示文件的内容使用的编码格式
# -*- coding: utf-8 -*-
2. python sys 的编码格式。
reload(sys)
sys.setdefaultencoding("utf8")
sys.setdefaultencoding("utf8")
3. locale.getpreferredencoding()
4. python可以打印出来标准输入和标准输出的编码格式。
print sys.getdefaultencoding()
print locale.getpreferredencoding()
print sys.stdin.encoding
print sys.stdout.encoding
print locale.getpreferredencoding()
print sys.stdin.encoding
print sys.stdout.encoding
5 python encode 把字符串编码成16进制数。 decode 解码成汉字
msg = "刘这是一条流。量校准短信,为了让他长一点?abcdefg这。事为什么"
print msg
print msg
msg.encode(‘utf-8‘)
cmd = "java -Dfile.encoding=utf-8 -jar jar/netflowcorrect-0.1-jar-with-dependencies.jar %s" % msg.encode(‘gbk‘)
print cmd.decode(‘gbk‘).encode(‘utf8‘)
print cmd.decode(‘gbk‘).encode(‘utf8‘)
6 window 环境 命令行默认使用gbk 编码。
使用utf8 把参数编码会被系统默认解码成gbk, 就乱码(可能只乱一小部分),但也是乱码。大部分时间都用来确认这个事情了。
7 java 命令 可以指定默认 字符编码
java -Dfile.encoding=utf-8 -jar jar/netflowcorrect-0.1-jar-with-dependencies.jar
8 java中打印字符编码
System.out.println("Default Charset=" + Charset.defaultCharset());
System.setProperty("file.encoding", "Latin-1");
System.out.println("file.encoding=" + System.getProperty("file.encoding"));
System.out.println("Default Charset=" + Charset.defaultCharset());
System.out.println("Default Charset in Use=" + getDefaultCharSet());
private static String getDefaultCharSet() {
OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream());
String enc = writer.getEncoding();
return enc;
}
9 java中String 的编码转换
log("输入2:"+new String(args[index].getBytes("gbk"),"gbk"));
log("输入3:"+new String(args[index].getBytes("utf-8"),"gbk"));
log("输入4:"+new String(args[index].getBytes("GB2312"),"gbk"));
log("输入5:"+new String(args[index].getBytes("cp936"),"gbk"));
log("输入6:"+new String(args[index].getBytes("ISO-8859-1"),"gbk"));
10 java 中System.out 指定编码
private static void log(String msg) {
try {
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(msg);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
11 html 文件指定编码
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
妈妈再也不担心我的编码问题了。中文编码融汇贯通,windows,django,python,java,html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。