-
2021-02-28 17:03:34
public static String encodin = "UTF8"
public static String encodout = "UTF8"
static void writeOutput(String str) {
try {
FileOutputStream fos = new FileOutputStream("test.txt");
Writer out = new OutputStreamWriter(fos, encodout);
out.write(str);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
static String readInput() {
StringBuffer buffer = new StringBuffer();
try {
FileInputStream fis = new FileInputStream("test.txt");
InputStreamReader isr = new InputStreamReader(fis, encodin);
Reader in = new BufferedReader(isr);
int ch;
while ((ch = in.read()) > -1) {
buffer.append((char)ch);
}
in.close();
return buffer.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
更多相关内容 -
Java读取二进制文件 乱码 求大神帮忙
2021-02-25 19:54:42Filefile=newFile("D:/Users/yao/Desktop/test/2.rec");if(file.exists()){try{FileInputStreamin=newFileInputStream(file);DataInputStreamdis=newDataInputStream(in);byte[]itemB...File file = new File("D:/Us...Filefile=newFile("D:/Users/yao/Desktop/test/2.rec");if(file.exists()){try{FileInputStreamin=newFileInputStream(file);DataInputStreamdis=newDataInputStream(in);byte[]itemB...
File file = new File("D:/Users/yao/Desktop/test/2.rec");
if(file.exists()){
try {
FileInputStream in = new FileInputStream(file);
DataInputStream dis=new DataInputStream(in);
byte[] itemBuf = new byte[20];
//市场编码
dis.read(itemBuf, 0, 8);
String marketID =new String(itemBuf,0,8);
//市场名称
dis.read(itemBuf, 0, 20);//read方法读取一定长度之后,被读取的数据就从流中去掉了,所以下次读取仍然从 0开始
String marketName =new String(itemBuf,0,20);
//上一交易日日期
dis.read(itemBuf, 0, 8);
String lastTradingDay = new String(itemBuf,0,8);
//当前交易日日期
dis.read(itemBuf, 0, 8);
String curTradingDay = new String(itemBuf,0,8);
//交易状态
dis.read(itemBuf, 0, 1);
String marketStatus = new String(itemBuf,0,1);
//交易时段数
// short tradePeriodNum = dis.readShort();
System.out.println("市场代码:"+ marketID);
System.out.println("市场名称:"+ marketName);
System.out.println("上一交易日日期:"+ lastTradingDay);
System.out.println("当前交易日日期:"+ curTradingDay);
System.out.println("当前交易日日期:"+ curTradingDay);
System.out.println("交易状态:"+ marketStatus);
// System.out.println("交易时段数:"+ tradePeriodNum);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//close
}
}
展开
-
java几种乱码处理方法介绍
2021-03-06 21:52:24java乱码解决方法:解决方式1(若乱码参数多,就比较低效)浏览器默认编码为ISO-8859-1,后端Servlet接收请求参数,按照ISO-8859-1进行解码,得到二进制流,然后再用UTF-8编码。示例代码:// 获得请求参数String ...java乱码解决方法:
解决方式1(若乱码参数多,就比较低效)
浏览器默认编码为ISO-8859-1,后端Servlet接收请求参数,按照ISO-8859-1进行解码,得到二进制流,然后再用UTF-8编码。
示例代码:// 获得请求参数
String queryString = request.getQueryString();
// 按照ISO-8859-1方式解码
byte[] bytes = queryString.getBytes("ISO-8859-1");
// 按照UTF-8编码
String param = new String(bytes,"UTF-8");
解决方式2(此种方式只支持get方式请求)
修改服务器(tomcat)配置:在server.xml中,默认为ISO-8859-1(没有显示出来),我们可以添加上UTF-8
解决方式3(此种方式只支持post方式请求)
在servlet直接设置请求参数编码--推荐//设置请求参数编码
request.setCharacterEncoding("UTF-8");
如果post和get同时出现乱码,结合方式2和方式三使用
响应乱码--响应// 设置MIME类型
response.setContentType("text/html");
// 设置编码
response.setCharacterEncoding("UTF-8");
//设置编码(简写)
response.setContentType("text/html;charset=utf-8");
更多java知识请关注java基础教程栏目。
-
深入解析java乱码
2021-03-06 21:52:16大家都知道,文本文件,存储在硬盘上,都是一串二进制 ,01的组合,它本身是不携带不论什么,哪怕一丁点,信息告诉文本编辑器 hi哥们儿,我是GBK编码,我是UTF-8编码,我是。。。。。。。它很easy,就是01的组合,他...1.什么是编码 ,为什么要编码
先前从没有思考这么深入的问题,觉得一切理所当然,直到有一天java的乱码让我跪了,他不在听我的话,到处是乱码,这次我不打算放过它,我要收拾了它。
大家都知道,文本文件,存储在硬盘上,都是一串二进制 ,01的组合,它本身是不携带不论什么,哪怕一丁点,信息告诉文本编辑器 hi哥们儿,我是GBK编码,我是UTF-8编
码,我是。。。。。。。
它很easy,就是01的组合,他不知道自己是什么,所以我们仅仅有知道他是什么然后才干正确的编辑合适用它,首先看个小样例。
这是一个文本文件,他的二进制形式就是一串01
当我我用的终端的编码是GBK显示时(第一次)
当我用UTF-8时(第二次)
他就是这么简单 有是这么无常,非常幸运,这一串01不管是在GBK编码,还是在UTF-8中都是有效字符也就是说按UTF-8的编码规则它代表
”汉“ 而假设依照GBK编码规则来解析呢他又是 ” 姹 “ ,这就是根源了,编码和解码用的不是一种码。所以大多数情况下你都搞不懂 好端端的文档怎么就乱了码。 这就是需
要编码的原因了。 二进制文件一串01电脑认得可是对他来说就是01没有意义。所以要把它翻译成大家能识别的东西。一种编码编码在我看来就是一种映射, 也就是向刚才所说
的GBK环
境下 它映射成一种东西,UTF-8,环境下它映射成还有一种东西,可是本质他俩有是一个东西,那客官又问了 ,明明再UTF-8和GBK环境下都一样,比方说a,这就说的到了,编
码与编码之间的兼容问题了,
想探索的朋友自己能够探索下,各个编码的规则及兼容性,这里就不多说了。
2. 上手编码
写java文件,就先来个helloworld
这是同一个文件 我在不同编码环境下查看,看到的东西是不一样的我的系统是Ubuntu 12.04 默认编码UTF-8 但是提前声明,我这个文件但是GBK编码的所以以GBK形式的编
码查看才有意义,张三 又立了功,下边来编译我的这个HelloWorld 文件,看看有什吗奇迹?
我去,不活啦 helloWorld 都搞不定,这都能出错,这日子没法过了。只是别着急,看错误, 这个字符(当然这里不是张三代表的字符找不到,而是再GBK里代表张三的0101
二进制串在UTF-8里找不到映射所以它没法解析,大家能够了解一下UTF-8的编码规则)UTF-8里找不着,没错 找不着就对了,你不是一次编译到处执行吗?编译都过不去怎么
搞,别着急 javac 里有一个參数,-encoding Specify character encoding used by source files 也就是说你告诉javac 你这个java源文件是什么样的编码,你别给
搞错了,你要是搞错了,幸运的,编译只是去告诉你哪里有问题,要是不幸的 汉 就变成了 姹 啦 想想就可怕 所以不报错并不代表程序没有问题 ,不信你试试,我刚才说
过,我的系统默认是UTF-8 所以没有编译过去这个是GBK编码的源文件,大多数人用的还是windows,并且又安装了中文语言包,所以默认编码大都GBK所以也就行正常编译
GBK编码的源文件,所以一般没有问题,但大多数程序终于上线执行的环境但是linux啊 ,全部大家设置虚拟机參数是-Dfile.encoding=GBK 这个是谁也不敢偷懒的。
(只是这里说这个还有点早)
当我加上这个參数 编译顺利通过。
感觉到非常神圣,执行我的helloWord
UTF-8环境下为
好兴奋啊 最终出来了
GBK环境下执行(这是大多数产生乱码的原因)
这不科学,怎么又乱了 神啊
大家肯定没有忘 java的class文件是什么编码的啊 Unicode对吧 所以张三这个字符串 所以编译完了 ,他就不是GBK了 全部的无论是什么编码的源文件,变成class文件编码都一样,你没告诉JVM使用什么编码,所以它默认UTF-8,所以张三被解析成UTF-8编码相应的一串二进制,但你的输出环境又是GBK所以。。。。
所以我老老实实的加上了 (这个命令行环境仍然是GBK)
System.out中的这个out是什么?PrintStream 是个输出流啊(默认是流向控制台当然你可已通过 System.setOut(PrintStream out)来让他流向别处,比方文本,然后用editplus打
开看下,通过设置不同的解码,来看不同的显示,当然不是必需这样) 打印到控制台,这个流你打算以什么编码来展示它,GBK环境下肯定是以GBK的形式展示吧,但是第一次是乱码为
什么,JVM是这样想
得,我有一个Unicode编码的张三在这里,我在说一下我的系统UTF-8在我没告诉JVM以什么编码规则编码时,它肯定使用UTF-8来编 你就会得到一个输入流 这个输入流是一串
00111二进制代表UTF-8下的张三,而到了输出到屏幕这里 屏幕(这里就是输出流流向的地方)不吃这一套 这一串00001111不代表张三,代表上边的那三个我也不太认识的字
(汗颜啊),所以咱得告诉虚拟
机,我要的张三是GBK编码的张三,我要的一串二进制相应GBK里的张三,所以加上个这个就好了。先写到这里吧!再晚赶不上二路汽车了。
下次再写个关于IO的编码的那个我感觉比这个简单点。(配合学习java的一些和编码相关的类效果更加)
先写到这里 ,祝大家 国庆节玩好。不要忘了 撸两行代码 怡怡情,由于几天不见,她没准就把你忘了。
-
java读取图片并转化为二进制字符串的实现方法
2020-08-26 23:40:00主要介绍了java读取图片并转化为二进制字符串的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 -
java udp接收16进制乱码
2021-04-17 05:50:48java udp接收16进制乱码[2021-01-30 09:27:24]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\ \;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可... -
java 二进制数据下载、本地文件下载、各种浏览器下载名称乱码解决
2021-08-10 11:23:55} } 二进制数据下载 @SuppressWarnings("finally") public static boolean download(byte[] bytes, String fileName, HttpServletRequest request, HttpServletResponse response) throws IOException { ... -
Java 二进制I/O流之字节流
2021-02-13 00:06:03引入:文件可以分为你两种类型进行存储,一是以文本的格式存储,其他的都是以二进制的方式进行存储的,比如:(100100001111).在文本的读取中,我们有Scanner和PrintWriter方法中文本中读入和写出数据。读取文本数据... -
这样的一堆乱码怎么转换成二进制数
2021-03-06 21:52:39该楼层疑似违规已被系统折叠隐藏此楼...import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;public class TestFileto2... -
java 16进制转中文乱码
2021-02-02 18:25:57将utf-8改为GBK即可 public static String hexStr2Str(String hex) { String hexStr = "";... //16进制能用到的所有字符 0-15 for(int i=0;i<hex.length();i++){ String s = hex.substring(i, i+1); if -
解决RedisTemplate序列化二进制乱码
2021-04-21 22:56:20@Bean //解决了二进制序列化问题,Utils里使用的是RedisTemplate public RedisTemplate, Object> redisTemplate(@Qualifier("connectionFactory") RedisConnectionFactory factory) { RedisTemplate, Object> ... -
java二进制文件读写
2009-02-27 17:47:15Java 二进制文件读写的demo,可以提供给需要的朋友使用 -
Java后端返回流式excel文件或是返回二进制乱码图片,vue前端处理并下载
2020-12-29 16:49:07当文件下载不是直接打开,而是用接口请求,后端返回的是文件流时,我们就要封装一个方法处理文件流,并下载出来。ps:我用的ui是iview。 //一般文件下载会有多个地方用到,所以vue项目一般都是放在utils工具文件夹里... -
Netty进制转换乱码问题
2020-07-20 14:12:41在公司做项目的时候发现用Netty进行TCP/IP通信的Netty客户端接收到的数据进制乱码,经过摸索,终于成功解决了这个鸡肋的问题 -
Java基础数据类型二进制转换
2021-02-12 12:47:51前言:本文主要介绍java基础类型的二进制转换和二进制的基本概念。二进制:1,二进制是以0和1为码,逢2进1,比如3=11=1*2+1。2,在计算机当中其它进制的算法基本基于2进制,因为计算机只认识0和1,比如16进制数则... -
JAVA二进制字节数组字符十六进制BCD编码转换.doc
2011-06-09 10:15:51JAVA二进制字节数组字符十六进制BCD编码转换 -
将二进制流还原图片时得到的是乱码,该怎么解决
2021-04-10 10:41:53当前位置:我的异常网» Java Web开发»将二进制流还原图片时得到的是乱码,该怎么解决将二进制流还原图片时得到的是乱码,该怎么解决www.myexceptions.net网友分享于:2013-09-12浏览:123次将二进制流还原图片时得到... -
将数据库存放的二进制乱码通过base64转成图片
2020-05-06 12:06:05将数据库存放的二进制乱码通过base64转成图片 定义函数 /** * @param blob 二进制对象 * 二进制转成Base64 */ public String blobToBase64(Blob blob) { String result = ""; if (null != blob) { tr... -
java中字符串编码的转换以及乱码后的处理总结
2021-02-27 17:02:25java中编码的转换。常见的编码也就ISO8859-1,GBK,GB2312,UTF-8java里有String这个类存储并处理字符串,同样String里有个方法叫getBytes(),这个方法起着编码转换的作用。API里这样解释这个方法:Encodes this String... -
java十六进制字符串和中文(字符串)互转以及转换乱码问题总结
2019-10-21 15:25:35* 16进制直接转换成为字符串(无需Unicode解码) * @param hexStr Byte字符串(Byte之间无分隔符 * @author xxs * @return 对应的字符串 */ public static String hexStr2Str(String hexStr) { String str = ... -
java写二进制文件,不能直接编辑,该怎么操作?
2021-02-26 13:28:52java写二进制文件,不能直接编辑,该怎么操作?关注:138答案:3mip版解决时间 2021-01-14 21:48提问者醒不来的梦2021-01-14 07:45我现在想做写一个文件,使用二进制来写,写好的文件只能通过我的程序来读,不能使用... -
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2020-12-13 11:52:04第一步,在 axios 请求中加入参数,表示接收的数据为二进制文件流 responseType: 'blob' 第二步,在拿到数据流之后,把流转为指定文件格式并创建a标签,模拟点击下载,实现文件下载功能 let blob = res.data let reader =... -
Java中的数据类型与二进制
2021-05-07 09:20:17Java八种基本数据类型占用内存空间大小和默认值二、二进制1. 二进制是什么2. 字节是什么3. 计算机中存储二进制的形式3.1 原码、反码、补码是什么3.2 计算机当中存储二进制是存储的哪个码?三、计算机只认识二进制,... -
Java接收UDP及16进制数据乱码问题解决
2020-08-22 16:21:57最近接收第三方发送的UDP数据包,通过wirshark抓包后使用其原始数据(16进制),在自己写的UDPclient/server测试成功,在生产环境中,出现了接收数据乱码的问题。 基于Spring Boot2.1.5.RELEASE,jdk 1.8开发 相关... -
JAVA处理BLOB类型和CLOB类型的二进制数据
2019-11-08 13:17:15工作的时候遇到了处理二进制流数据的问题,我是用Map<String,Object>进行接收, 获取value值后,转成CLOB类型的。通过getSubString方法,读取它的所有数据,这样就直接转换成了String类型的数据。 下面还尝试... -
Java如何获取上传的二进制字节流中的文件编码格式以及解决文件乱码问题
2018-10-18 15:24:45utf-8:对应二进制编码格式头为-17 -69 -65 十进制为:EF BB BF unicode:对应二进制编码格式头为-1 -2 十进制为:FF FE gbk格式没有自己编码头,所以无法比较.且gbk2312与gbk是包含关系 Unicode ... -
读取二进制文件的中文乱码问题
2015-11-08 16:47:58逐步debug,发现并非在网络传输过程中出现乱码问题(若是,可通过对request、response设置编码,setCharacterEncoding("utf-8")解决),而是在读取二进制文件时,未指定编码的原因。 项目中使用了DataInputStream的... -
富文本编辑器上传到本地可以转二进制存数据库.rar
2020-06-11 10:14:55ueditor修改版,上传图片直接保存到想要的位置,不再是项目中,添加图文内容直接转为二进制存储数据库方法,直接在页面显示,不需要任何处理。 -
JAVA 十六进制与字符串的转换
2021-02-12 09:03:23字符串转为16进制后再转回来,英文正常,中文出现乱码笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发现存在一个问题-->字符串转为16进制后再转回来,英文正常,中文...