为什么以UTF8格式读取UTF8格式文件,写入输出流后还是乱码

用UTF8编码读入一个utf8的文件,结果写入输出流的时候还是乱码?这是怎么回事?
InputStream ist = LaucherTest.class.getResourceAsStream("/Book1.csv");

InputStreamReader reader = new InputStreamReader(ist,"UTF-8");
ByteArrayOutputStream str= new ByteArrayOutputStream();
int ch;
while((ch=reader.read())!=-1){
str.write(ch);
}
查看str内容,结果还是乱码 :!:

4个回答

nputStreamReader reader = new InputStreamReader(ist,"UTF-8");
ByteArrayOutputStream str= new ByteArrayOutputStream();
int ch;
while((ch=reader.read())!=-1){
str.write(ch);
}

Reader读/Writer写 字符
InputStream读/OutputStream写 字节
它们要配套使用

现在你混用了。把ByteArrayOutputStream改成OutputStreamWriter

InputStreamReader read() 是读取一个字符;
ByteArrayOutputStream write(int b) 将指定的字节写入此字节数组输出流。

[code="java"]
public synchronized void write(int b) {
int newcount = count + 1;
if (newcount > buf.length) {
byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)];
System.arraycopy(buf, 0, newbuf, 0, count);
buf = newbuf;
}
buf[count] = (byte)b;//在这里转换为byte,只有一个字节,字符是两个字节
count = newcount;
}
[/code]

应该用Writer,比如CharArrayWriter、 PrintWriter等。

.java 和项目encoding 转为uft-8

你是怎么查看str里的内容的?你能确定查看的方式是UTF-8编码的吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
pandas关于csv的读取和写入问题
1、利用pandas.read_csv读取数据后再用pandas.to_csv写入数据,在新写入的数据里,多出了一行是为什么呢?对比了一下读取的和写入的数据,差别在于,写入的数据在中间多出一行空白行。 ``` import pandas as pd train=pd.read_csv(r'F:\data1\train.tsv', sep='\t',header=0) train.to_csv(r'F:\data2\train2.tsv', encoding='utf_8_sig',sep='\t', header=False,index=True) ``` 读入的数据是:![图片说明](https://img-ask.csdn.net/upload/201911/13/1573642507_391031.png) 写入后的数据是:![图片说明](https://img-ask.csdn.net/upload/201911/13/1573642607_667954.png)
python 如何将windows-1252转换为utf-8
问题是这样的: 我用python程序读取带有中文的文件名:'E:\MyProject\SVN_Project\Drawingboard_local\model\mydata\input\production\a\һ�ɳ���.htm' 发现乱码, 正确的目录地址是: 'E:\MyProject\SVN_Project\Drawingboard_local\model\mydata\input\production\a\示波器.htm' 我把乱码的"示波器"部分截取出来得到的乱码部分,用chardet去做了一个字符串编码类型检测: mycoding = chardet.detect(videoFileName)["encoding"] 得到该中文部分的编码格式是:'windows-1252' 但实际上我在python文件头部加上了: # *-* coding: utf-8 *-* import sys reload(sys) sys.setdefaultencoding("utf-8") 还是不是utf-8编码格式没用。 截取的中文部分写入文件时一直报错,请教各位朋友:如何将windows-1252转换为utf-8格式,十分感谢
请求各位大神指出下面一段python爬虫代码的问题:
我想在24365官网上爬取招聘信息中的岗位名称和公司名称到EXCEL表格中,但运行代码后表格里只有标题,没有内容,要爬取的网站如图所示: ![图片说明](https://img-ask.csdn.net/upload/202003/25/1585128946_797460.png) 网址:https://job.ncss.cn/student/jobs/index.html?server=true&jobName=%E5%AE%89%E5%85%A8&areaCode=&degreeCode=&monthPay=&areasName=%E5%85%A8%E5%9B%BD 代码如下: import urllib.request,traceback import re import xlwt #用来创建excel文档并写入数据 def get_content(page): url = 'https://job.ncss.cn/student/jobs/index.html?server=true&jobName=%E5%AE%89%E5%85%A8&areaCode=&degreeCode=&monthPay=&areasName=%E5%85%A8%E5%9B%BD'+str(page)+'.html' a = urllib.request.urlopen(url)#打开网址 html = a.read().decode('utf-8')#读取源代码并转为unicode return html def get(html): reg = re.compile(r'class="company-name" .*?>(.*?)</span>.*?<span>(.*?)</span>',re.S)#匹配换行符,设置正则表达式 items = re.findall(reg,html) return items def excel_write(items,index): #爬取到的内容写入excel表格 for item in items:#职位信息 for i in range(0,2): #print item[i] ws.write(index,i,item[i])#行,列,数据 print(index) index+=1 newTable="test2.xls"#表格名称 wb = xlwt.Workbook(encoding='utf-8')#创建excel文件,声明编码 ws = wb.add_sheet('sheet1')#创建表格 headData = ['公司','类型']#表头部信息 for colnum in range(0,2): ws.write(0, colnum, headData[colnum], xlwt.easyxf('font: bold on')) # 行,列 for each in range(1,10): index=(each-1)*50+1 excel_write(get(get_content(each)),index) wb.save(newTable) 该网站爬取内容所需的审查元素在下图的蓝色位置: ![图片说明](https://img-ask.csdn.net/upload/202003/25/1585129490_756957.png) 审查元素具体内容如下: ![图片说明](https://img-ask.csdn.net/upload/202003/25/1585130245_156158.png)
用PyPDF2合并多个pdf,试了很多方法都没用,烦请大佬帮忙看看出了什么问题
合并了很多文件夹中的pdf没有问题, 唯独有一个文件夹有问题,请问各位大佬这是出了什么问题?![不能行的文件夹](https://img-ask.csdn.net/upload/202002/13/1581602747_914891.jpg)![报错原因](https://img-ask.csdn.net/upload/202002/13/1581602826_229490.jpg) ``` # -*- coding: utf-8 -*- """ Created on Thu Feb 13 20:47:29 2020 @author: 13638 """ # 利用PyPDF2模块合并同一文件夹下的所有PDF文件 # 只需修改存放PDF文件的文件夹变量:file_dir 和 输出文件名变量: outfile import os from PyPDF2 import PdfFileReader, PdfFileWriter import time # 使用os模块的walk函数,搜索出指定目录下的全部PDF文件 # 获取同一目录下的所有PDF文件的绝对路径 def getFileName(file_dir): file_list = [os.path.join(root, filespath) \ for root, dirs, files in os.walk(file_dir) \ for filespath in files \ if str(filespath).endswith('pdf') ] return file_list if file_list else [] # 合并同一目录下的所有PDF文件 def MergePDF(filepath, outfile): output = PdfFileWriter() outputPages = 0 pdf_fileName = getFileName(filepath) if pdf_fileName: for pdf_file in pdf_fileName: print("路径:%s"%pdf_file) # 读取源PDF文件 input = PdfFileReader(open(pdf_file, "rb")) # 获得源PDF文件中页面总数 pageCount = input.getNumPages() outputPages += pageCount print("页数:%d"%pageCount) # 分别将page添加到输出output中 for iPage in range(pageCount): output.addPage(input.getPage(iPage)) print("合并后的总页数:%d."%outputPages) # 写入到目标PDF文件 outputStream = open(os.path.join(filepath, outfile), "wb") output.write(outputStream) outputStream.close() print("PDF文件合并完成!") else: print("没有可以合并的PDF文件!") # 主函数 def main(): time1 = time.time() file_dir = r'C:\Users\13638\Desktop\Python\7' # 存放PDF的原文件夹 outfile = "Cheat_Sheets.pdf" # 输出的PDF文件的名称 MergePDF(file_dir, outfile) time2 = time.time() print('总共耗时:%s s.' %(time2 - time1)) main() ```
Python读取csv文件后str转换为float
-------------------------------------------code--------------------------------- #coding:utf-8 import csv import xlwt #新建excel文件 myexcel = xlwt.Workbook() #新建sheet页 mysheet = myexcel.add_sheet("testsheet") csvfile = open("data.csv","r") #读取文件信息 reader = csv.reader(csvfile) l = 0 #通过循环获取单行信息 for line in reader: r = 0 #通过双重循环获取单个单元信息 for i in line: #通过双重循环写入excel表格 x=0 #将第六行第二列的str转换为float if l > 6: if r >= 1: #x=float(i) x = float(i) #print(i) if x > 160: print(l,r) mysheet.write(l,r,"high") else: mysheet.write(l,r,i) r=r+1 l=l+1 #最后保存到excel myexcel.save("myexcel.xls") -------------------------------------------code--------------------------------- 如上,x=float(i)处报错ValueError:could not convert string to float: '-' 此处数据类似 16.02 如何解决。
C#中Parallel.For并行处理中读取文件时出现的错误
1、读取“d:/users/v-lingao/from_lei/wordsegmentation/testdata”目录下的所有txt文档,利用Parallel.For并行处理各个txt文档中的内容,每次读取一行存储到string line中,利用line = sr.ReadLine() (StreamReader sr); 没处理一行也入“d:/users/v-lingao/from_lei/wordsegmentation/testdata1”目录下新创建的对应的txt文件中。方法ComputeIDF()实现次功能。 2、读取在“d:/users/v-lingao/from_lei/wordsegmentation/testdata1”目录下创建的txt文件,利用Parallel.For并行处理每个txt文档中的内容,类似于ComputeIDF()方法,利用line = sr.ReadLine().。法ComputingTfIdf()实现此功能。错误也就出现在此方法中,错误提示根据写入文件时编码方式的不同有所改变。 部分代码如下所示: public static Dictionary<string, float> ComputeIDF(List<string> stopWordsList) { DirectoryInfo di = new DirectoryInfo(@"d:/users/v-lingao/from_lei/wordsegmentation/testdata"); FileInfo[] ff = di.GetFiles("*.txt"); Dictionary<string, int> featureDoc = new Dictionary<string, int>(); Parallel.For(0, ff.Length, (part) => { FileInfo file = ff[part]; Dictionary<string, int> featureFile = new Dictionary<string,int>(); string name = file.Name.Substring(file.Name.LastIndexOf("\\") + 1); string path = Path.Combine(@"d:/users/v-lingao/from_lei/wordsegmentation/testdata1", name); FileStream aFile = new FileStream(path, FileMode.Create); StreamWriter sw = new StreamWriter(aFile, Encoding.UTF8); int lineCount = 0; char[] charArray = new char[] { ' ' }; StreamReader sr = new StreamReader(file.OpenRead(),Encoding.UTF8); string line = sr.ReadLine(); while (line != null) { ​ ​ ​ ​ ​ ​//部分代码省略 ​ ​ ​ ​ ​​lineCount++; sw.Write(lineCount); foreach (KeyValuePair<string, int> keyvalue in featureLine) { sw.Write(' ' + keyvalue.Key + ':' + (0.5 + 0.5 * ((float)keyvalue.Value / maxCount))); } sw.WriteLine(); line = sr.ReadLine(); } //combine the featureFiles into featureDoc without repeating featureDoc.Add(featurename, featureFile[featurename]); sr.Close(); sw.Close(); }); Dictionary<string, float> idf = new Dictionary<string, float>(); foreach (KeyValuePair<string, int> keyvalue in featureDoc) { idf.Add(keyvalue.Key, (float)Math.Log10((float)sumLine / (float)keyvalue.Value)); } return idf; } 这个方法没有问题。接下来是ComputingTfIdf(idf),问题出在这个方法中。 public static void ComputingTfIdf(Dictionary<string, float> idf) { DirectoryInfo dir = new DirectoryInfo(@"d:/users/v-lingao/from_lei/wordsegmentation/testdata1"); FileInfo[] ff = dir.GetFiles("*.txt"); StreamReader sr; Parallel.For(0, ff.Length, (part) => { FileInfo file = ff[part]; List<string> idfList = new List<string>(); idfList.AddRange(idf.Keys); int linenum = 0; sr = new StreamReader(file.OpenRead(),Encoding.UTF8); char[] charArray = new char[] { ' ' }; char[] charArray1 = new char[] { ':' }; string name = file.Name.Substring(file.Name.LastIndexOf("\\") + 1); string path = Path.Combine(@"d:/users/v-lingao/from_lei/wordsegmentation/idfdata", name); FileStream aFile = new FileStream(path, FileMode.Create); StreamWriter sw = new StreamWriter(aFile, Encoding.UTF8); ** *string line = sr.ReadLine();* ** //这行有时也会出错 while (line != null) { linenum++; string[] words = line.Split(charArray); int i = 1; foreach (string word in words) { if (i == 1) { sw.Write(word + ' '); i++; } else { string[] wds = word.Split(charArray1); if (wds.Length == 2) { string key = wds[0]; if (idf.Keys.Contains(key)) { double tfidf = (double)idf[key] * (Convert.ToDouble(wds[1])); sw.Write(idfList.IndexOf(key)+ ':'+tfidf +' '); } } } } sw.WriteLine(); ** *line = sr.ReadLine();* ** //问题常常出现在这行 } } sw.Close(); }); } 错误提示根据写入文件时编码方式的不同有所改变。当读取、写入文件用UTF8或者Unicode时,写入和读取的都是乱码,并且line = sr.ReadLine()出错,错误提示为: ** *The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderReplacementFallback'* ** 很是无语,功能相同的代码,为什么ComputeIDF()方法中line = sr.ReadLine()就不出错。我将编码换成Encoding.GetEncoding("GBK")读写文件不会出现乱码,但line = sr.ReadLine()还是出错,相当无语! 还有就是当不用并行处理Parallel.For,而是用for循环时也不出错。 求大侠帮忙,不胜感激!
datax从hive导出数据到mysql
从MySQL导入数据到hive上是没问题的,从hive上导出数据时,提示: [您的配置错误.]. - 列配置信息有错误. 因为您配置的任务中,源头读取字段数:1 与 目的表要写入的字段数:4 不相等. 请检查您的配置并作出修改. 下面是我的json文件: ```{ "job": { "content": [{ "reader": { "parameter": { "path": "/apps/hive/warehouse/test.db/job01", "column": ["*"], "defaultFS": "hdfs://xxxx.xx.xx:8020", "encoding": "utf-8", "fieldDelimiter": "\u0001", "fileType": "text" }, "name": "hdfsreader" }, "writer": { "parameter": { "password": "*****", "column": ["*"], "connection": [{ "jdbcUrl": "jdbc:mysql://xxxxx:3308/groundcherry", "table": ["scoop_test"] }], "writeMode": "insert", "username": "****" }, "name": "mysqlwriter" } }], "setting": { "speed": { "channel": 1 } } } } ``` 网上说是分割符的问题,使用默认的 \u0001,导入的时候可以导入进去,导出的时候就报错了,使用","号也是一样,hive上建表时指定的字段分隔符与这个是一致的,有点怀疑是不是字段分割的原因,还会有什么原因导致这种错误呢,请大家指点指点谢谢
在oracle使用Utl_File.put_line多次,如何替换掉换行符
直接上代码: Utl_File.put_line(fileid, CONVERT(p_str1, 'AL32UTF8', 'ZHS16GBK')); Utl_File.put_line(fileid, CONVERT(p_str2, 'AL32UTF8', 'ZHS16GBK')); Utl_File.put_line(fileid, CONVERT(p_str3, 'AL32UTF8', 'ZHS16GBK')); 分三次写入一个文档,如何在写入后替换掉换行符呢。 还有一个问题就是,如何通过Utl_File读取本地的TXT文件数据!!!!!!
读取python遍历中文目录得到的文件路径报错
各位朋友们好,我是一名python新手,现在遇到一个问题,恳请各位朋友们能指点一下我。 我的环境是:ubuntu14.04系统,python2.7 用python遍历一个目录,目录层次结构如下: 这是主目录: /home/chaoma/superboard/mydata/input/production 主目录下的目录层次结构如下 --超级画板教学资源_全处理_772 -- Z+Z资源库 --初中数学资源库 --1有理数 ---1.1数的分类 -- 0.mp4 -- name.txt …… --2一元一次方程 ….. --动态解析高考数学综合题 --第一章基本函数 --第四节 --06福建理21 --name.txt --0.mp4 --拓展练习4.1 …. --第五节 …… --第二章三角函数 ……. …… --学生作品集合_全处理_52 ……… 我想实现的功能:找到所有含有0.mp4文件的父目录,并读取该父目录下面的name.txt文件 因此我写了以下的遍历函数来实现这一功能: def visitDir_walk(path , sFileSuffix): codedetect = chardet.detect(path)["encoding"] path = unicode(path , codedetect) fileNames = list() for root,dirs,files in os.walk(path): for i in range(0 , len(files)): file = files[i] if file.endswith(sFileSuffix): sFileName = os.path.join(root , file) #这边返回的应该是包含视频文件的父目录,也就是学生作品目录 realFileName = os.path.split(os.path.abspath(sFileName))[0] fileNames.append( unicode(realFileName,”gbk”) ) return fileNames def main(): sProductionInputPath = “/home/chaoma/superboard/mydata/input/production” dir_production_list = visitDir_walk(sProductionInputPath , ".mp4") #拼接name.txt的路径 for dir in dir_production_list: nameFile = os.path.join(dir , "name.txt") fout = codecs.open(nameFile , "w" , "utf-8") #截取出路径中的文件名作为需要的内容,并写入文件 fout.write(os.path.split(path)[1]) fout.close() main() 但是执行之后却报错了,报错如下: fout = codecs.open(nameFile , "w" , "utf-8") File "/usr/lib/python2.7/codecs.py", line 878, in open file = __builtin__.open(filename, mode, buffering) IOError: [Errno 2] No such file or directory: u'/home/chaoma/superboard/mydata/input/production/\u8d85\u7ea7\u753b\u677f\u6559\u5b66\u8d44\u6e90_\u5168\u5904\u7406_772/\u52a8\u6001\u89e3\u6790\u9ad8\u8003\u6570\u5b66\u7efc\u5408\u9898/\u7b2c\u4e00\u7ae0\u57fa\u672c\u51fd\u6570/\u7b2c\u56db\u8282/06\u798f\u5efa\u740621/name.txt' 打印这个报错的路径得到: /home/chaoma/superboard/mydata/input/production/超级画板教学资源_全处理_772/动态解析高考数学综合题/第一章基本函数/第四节/06福建理21/name.txt 这个文件路径是存在的却报错,不知道为什么。难道是路径是unicode类型就不能识别吗? 恳请各位朋友们能指点我一下,十分感谢。
mysql数据可以读取,但是不能写入
myeclipse下的web应用 有一个登录注册功能,登陆的时候读取数据库可以, 但是注册要写入进去就不行 ``` register.jsp <%@ page language="java" import="java.util.*,java.sql.*,cn.edu.dhu.*"%> <%@ page contentType="text/html,charset=utf-8" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <% String name = request.getParameter("usernamesignup"); String account = request.getParameter("emailsignup"); String pswd1 = request.getParameter("passwordsignup"); String pswd2 = request.getParameter("passwordsignup_confirm"); System.out.println("name="+name); System.out.println("name="+account); System.out.println("name="+pswd1); System.out.println("name="+pswd2); if(account !=null && pswd2!=null){ System.out.println("执行到了"); String sql = "use jsgl;insert into jsgl.user values('"+name+"','"+account+"','"+pswd1+"','"+pswd2+"')"; System.out.println("执行到了"); Connection conn=DB.getConn(); System.out.println("执行到了"); Statement stmt = DB.createStmt(conn); System.out.println("执行到了"); int n = DB.executeUpdate(stmt, sql); response.sendRedirect("index.jsp"); System.out.println("执行到了"); } %> <body> </body> </html> ``` ![图片说明](https://img-ask.csdn.net/upload/201604/07/1460005966_505761.png) 都执行到了,但是数据库里面没有信息 ps:从命令行敲insert语句是可以插入的 myeclipse这里不行的 求帮忙
get请求,参数拼接,时间字符串拼接报错,然后大佬们说的我好想不太清楚咋弄,就新添了请求方法,和调用
java.io.IOException: Server returned HTTP response code: 400 for URL: http://api.baidu.com/getsyncusers?code=02&date=2019-10-10 10:16:00.0 at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1894) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492) at com.dunan.zzjg.util.ApiGateToken.getResponseContext(ApiGateToken.java:115) at com.dunan.zzjg.service.impl.SysUserServiceImpl.setSyncUsers(SysUserServiceImpl.java:82) at com.dunan.zzjg.controller.DAapiController.userDate(DAapiController.java:44) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:892) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:117) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:106) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) /** * 根据请求地址及请求参数,获取服务器的相应信息 * * @param requestURL 请求地址 * @param requestParam 请求参数 * @param requestMethod "POST" or "GET" * @return */ public static String getResponseContext(String requestURL, String requestParam, String requestMethod,String token) { StringBuffer responseContext = new StringBuffer(); try { URL url = new URL(requestURL); // 此处的urlConnection对象实际上是根据URL的 URLConnection urlConn = url.openConnection(); urlConn.setConnectTimeout(30000); urlConn.setReadTimeout(30000); // 请求协议(此处是http)生成的URLConnection类 的子类HttpURLConnection,故此处最好将其转化 // 为HttpURLConnection类型的对象,以便用到 HttpURLConnection更多的API.如下: HttpURLConnection httpUrlConnection = (HttpURLConnection) urlConn; // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 // http正文内,因此需要设为true, 默认情况下是false; httpUrlConnection.setDoOutput(true); // 设置是否从httpUrlConnection读入,默认情况下是true; httpUrlConnection.setDoInput(true); // Post 请求不能使用缓存 httpUrlConnection.setUseCaches(false); // 设定传送的内容类型是可序列化的java对象 // (如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException) httpUrlConnection.setRequestProperty("Content-type","application/json"); // 设置 HttpURLConnection的字符编码 httpUrlConnection.setRequestProperty("Accept-Charset", "UTF-8"); if(StringUtils.isNotBlank(token)){ httpUrlConnection.setRequestProperty("Access-Token", token); } // 设定请求的方法为"POST",默认是GET httpUrlConnection.setRequestMethod(requestMethod); // 连接,从上述第2条中url.openConnection()至此的配置必须要在connect之前完成, // // 此处getOutputStream会隐含的进行connect(即:如同调用上面的connect()方法, // // 所以在开发中不调用上述的connect()也可以)。 if("POST".equals(requestMethod)){ OutputStream outStrm = httpUrlConnection.getOutputStream(); outStrm.write(requestParam.getBytes("UTF-8")); // // 刷新对象输出流,将任何字节都写入潜在的流中(些处为ObjectOutputStream) outStrm.flush(); // 关闭流对象。此时,不能再向对象输出流写入任何数据,先前写入的数据存在于内存缓冲区中, // 在调用下边的getInputStream()函数时才把准备好的http请求正式发送到服务器 outStrm.close(); } // 调用HttpURLConnection连接对象的getInputStream()函数, // 将内存缓冲区中封装好的完整的HTTP请求电文发送到服务端。 InputStream inStrm = httpUrlConnection.getInputStream(); // 读取文件流程 BufferedReader rd = new BufferedReader( new InputStreamReader(inStrm,"UTF-8")); // 采取行的方式进行读取 String tempLine = rd.readLine(); // 循环获取每一行数据 while (tempLine != null) { responseContext.append(tempLine); tempLine = rd.readLine(); } rd.close(); inStrm.close(); httpUrlConnection.disconnect(); httpUrlConnection = null; urlConn = null; url = null; } catch (Exception e) { e.printStackTrace(); } return responseContext.toString(); } /*获取上次更新的时间*/ TurnoverTime lastTime = timeMapper.selectTime(); String lastUpdateTime = lastTime.getLastUpdateTime(); System.out.println(lastUpdateTime); String url = "http://api.baidu.com/getsyncusers"; String param = "?code="+"02"+"&date="+lastUpdateTime; String requestMethod = "GET"; String token = ApiGateToken.getToken(); String responseContext = ApiGateToken.getResponseContext(url+param, param, requestMethod, token);
groovy中,从数据库读取的数据是列表形式[1,2,3,4],应该怎么写入本地文件中?
//保护 try{ OrderType1=eliteBean.chaxun_sql(querySql1,"dataSource"); //对列表遍历 log.debug("111+"+OrderType1.size()) log.debug("222+"+OrderType1[3]) for(int i = 0;i<OrderType1.size();i++) { //字典形式 333+[STAFF_ID:000312, STAFFNAME:沈坚] log.debug("333+"+OrderType1[i]) //对集合遍历获取包含的值的集合视图。 def mp=OrderType1[i] log.debug(mp.values()) //以上没问题,循环输出了列表形式数据 [000312, 沈坚] //拼接报文,记录到文件 def file=new File("D:\\OrderList\\${name}").write("${mp.values()}","utf8"); } }catch(Exception e){ 我这样写,数据总数写入不到文件。
byte[]写入和读取数据库DB2
C#中byte[]写入DB2数据库和读出,字段类型是blob。 ``` string filerd = File.ReadAllText("D:\\9672\\Source513\\client\\PM\\PMOS\\PMOSAC\\HTMLPage1.html"); byte[] filebyte = System.Text.Encoding.UTF8.GetBytes(filerd); sb.Append("insert into TPMOSAC20(QUERY_CONTENT)values('" + filebyte + "')"); FunctionDataaccess.ExecuteNonQuery(sb.ToString()); ``` 断点查看sb里面的filerd是system.byte[]。 求大神怎么改啊
C#上传到ftp文件加密问题
上传功能:private void Upload(string filename) //上传功能 { FileInfo fileInf = new FileInfo(filename); string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name; //uri登录方式 FtpWebRequest reqFTP; reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name)); reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword); reqFTP.KeepAlive = false; reqFTP.Method = WebRequestMethods.Ftp.UploadFile; reqFTP.UseBinary = true; reqFTP.ContentLength = fileInf.Length; // 缓冲区大小设置成2kb int buffLength = 2048; byte[] buff = new byte[buffLength]; int contentLen; //打开一个文件流来读入上传的文件 FileStream fs = fileInf.OpenRead(); try { // 把要上传的文件写入流 Stream strm=reqFTP.GetRequestStream(); //从文件流中读取数据,一次读2kb大小的数据 contentLen = fs.Read(buff, 0, buffLength); // Till Stream content ends while (contentLen != 0) { //把文件的内容从文件流写到FTP上传流中 strm.Write(buff, 0, contentLen); contentLen = fs.Read(buff, 0, buffLength); } //关闭文件流和请求流 strm.Close(); fs.Close(); } catch(Exception ex) { MessageBox.Show(ex.Message, "上传出错"); } } 加密功能: public static String Encrypt(String Key, String str) { byte[] bKey = Encoding.UTF8.GetBytes(Key.Substring(0, 8)); byte[] bIV = IV; byte[] bStr = Encoding.UTF8.GetBytes(str); try { DESCryptoServiceProvider desc = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, desc.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write); cStream.Write(bStr, 0, bStr.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); } catch { return string.Empty; } } 我调用加密函数显示cannot 'string' to 'System.IO.Stream',求大神指点
java 读取CLob字段乱码
fps = new FileOutputStream(file); osw = new OutputStreamWriter(fps,"UTF-8"); bw = new BufferedWriter(osw); Clob content = qrs.getClob(3); String line=content.getSubString((long)1,(int)content.length()); log.info("shell:"+line); bw.write(line); bw.flush(); 写入文件乱码 日志打出来也是乱码,求大神解答
大家帮帮忙!我这个上传文件的方法为什么会限制文件的大小啊?文件超过一定的大小,上传就失败了!
private void PostFile(string filename) { FileStream stream = new FileInfo(filename).OpenRead(); var shortfilename = Path.GetFileName(filename); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://120.24.97.123/APPService.svc/UploadFile/" + OperationOrderID + "/" + shortfilename); request.Method = "POST"; //request.ContentType = "application/json;charset=UTF-8"; //request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = stream.Length; Stream requestStram = request.GetRequestStream(); int bytesread = 0; //从流中读取字节块并将该数据写入给定缓冲区buffer中 Byte[] buffer = new Byte[4096]; bytesread = stream.Read(buffer, 0, 4096); long UploadByte = bytesread; while (bytesread != 0) { if (bytesread == 4096) { requestStram.Write(buffer, 0, 4096); } else { requestStram.Write(buffer, 0, bytesread); } SetText(shortfilename + " 文件正在上传中(" + FormatFileSize(UploadByte) + "/" + FormatFileSize(stream.Length) + ")"); bytesread = stream.Read(buffer, 0, 4096); UploadByte = UploadByte + bytesread; } stream.Close(); stream.Dispose(); requestStram.Close(); requestStram.Dispose(); SetText(shortfilename + " 文件上传成功..."); Stream getStream = request.GetResponse().GetResponseStream(); //StreamReader smd = new StreamReader(getStream); //SetText(smd.ReadToEnd()); //byte[] resultByte = new byte[200]; request.Abort(); //getStream.Read(resultByte, 0, resultByte.Length); //Console.WriteLine(Encoding.UTF8.GetString(resultByte)); //GetFiles(); }
急!!!安卓程序不能上传照片到服务器
我想做一个app 实现把拍下来的照片传到服务器上,现在可以拍照并保存到手机上面,但无法上传到服务器上,是什么情况? 服务器是用tomcat搭的 安卓上传的代码: import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.Button; import android.widget.Toast; public class uploadActivity extends Activity { private Button uploadbutton; private String uploadFile = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Test.jpg"; private String srcPath = Environment.getExternalStorageDirectory().getAbsolutePath()+"/Test.jpg"; private String actionUrl = "http://192.168.1.105:8080/ATestInternetCameraServlet/"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_photo); uploadbutton=(Button)findViewById(R.id.button2); uploadbutton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { uploadFile(); } }); } private void uploadFile() { String uploadUrl = "http://192.168.1.105:8080/ATestInternetCameraServlet/CameraServlet"; String end = "\r\n"; String twoHyphens = "--"; String boundary = "******"; try { URL url = new URL(uploadUrl); HttpURLConnection httpURLConnection = (HttpURLConnection) url .openConnection(); httpURLConnection.setDoInput(true); httpURLConnection.setDoOutput(true); httpURLConnection.setUseCaches(false); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setRequestProperty("Connection", "Keep-Alive"); httpURLConnection.setRequestProperty("Charset", "UTF-8"); httpURLConnection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); DataOutputStream dos = new DataOutputStream(httpURLConnection .getOutputStream()); dos.writeBytes(twoHyphens + boundary + end); dos .writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\"" + srcPath.substring(srcPath.lastIndexOf("/") + 1) + "\"" + end); dos.writeBytes(end); FileInputStream fis = new FileInputStream(srcPath); byte[] buffer = new byte[8192]; // 8k int count = 0; while ((count = fis.read(buffer)) != -1) { dos.write(buffer, 0, count); } fis.close(); dos.writeBytes(end); dos.writeBytes(twoHyphens + boundary + twoHyphens + end); dos.flush(); InputStream is = httpURLConnection.getInputStream(); InputStreamReader isr = new InputStreamReader(is, "utf-8"); BufferedReader br = new BufferedReader(isr); String result = br.readLine(); Toast.makeText(this, result, Toast.LENGTH_LONG).show();// dos.close(); is.close(); } catch (Exception e) { e.printStackTrace(); setTitle(e.getMessage()); } } } 服务器代码: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class CameraServlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { request.setCharacterEncoding("UTF-8"); // 设置处理请求参数的编码格式 response.setContentType("text/html;charset=UTF-8"); // 设置Content-Type字段值 PrintWriter out2 = response.getWriter(); // 下面的代码开始使用Commons-UploadFile组件处理上传的文件数据 FileItemFactory factory = new DiskFileItemFactory(); // 建立FileItemFactory对象 ServletFileUpload upload = new ServletFileUpload(factory); // 分析请求,并得到上传文件的FileItem对象 List<FileItem> items = upload.parseRequest(request); // 从web.xml文件中的参数中得到上传文件的路径 String uploadPath = "d:\\cameraupload\\"; File file = new File(uploadPath); if (!file.exists()) { file.mkdir(); } String filename = ""; // 上传文件保存到服务器的文件名 InputStream is = null; // 当前上传文件的InputStream对象 // 循环处理上传文件 for (FileItem item : items) { // 处理普通的表单域 if (item.isFormField()) { if (item.getFieldName().equals("filename")) { // 如果新文件不为空,将其保存在filename中 if (!item.getString().equals("")) filename = item.getString("UTF-8"); } } // 处理上传文件 else if (item.getName() != null && !item.getName().equals("")) { // 从客户端发送过来的上传文件路径中截取文件名 filename = item.getName().substring( item.getName().lastIndexOf("\\") + 1); is = item.getInputStream(); // 得到上传文件的InputStream对象 } } // 将路径和上传文件名组合成完整的服务端路径 filename = uploadPath + filename; // 如果服务器已经存在和上传文件同名的文件,则输出提示信息 if (new File(filename).exists()) { new File(filename).delete(); } // 开始上传文件 if (!filename.equals("")) { // 用FileOutputStream打开服务端的上传文件 FileOutputStream fos2 = new FileOutputStream(filename); byte[] buffer = new byte[8192]; // 每次读8K字节 int count = 0; // 开始读取上传文件的字节,并将其输出到服务端的上传文件输出流中 while ((count = is.read(buffer)) > 0) { fos2.write(buffer, 0, count); // 向服务端文件写入字节流 } fos2.close(); // 关闭FileOutputStream对象 is.close(); // InputStream对象 out2.println("文件上传成功!xii"); } } catch (Exception e) { } } }
【python】用python读取txt并按规则写入excle
![图片说明](https://img-ask.csdn.net/upload/201903/28/1553756964_633544.jpg) 对于这个问题,我写的代码是这样的 ``` # coding: utf-8 import csv TITLE = "【来源篇名】" AUTHOR = "【来源作者】" ORG = "【第一机构】" KEYWORD = "【关 键 词】" REFER = "【参考文献】" # By WilliamsCarl。2019/3/24 2:21。 # 作者:王木槿天下第一。Copyright. item_start = True refer_start = False headers = [TITLE, AUTHOR, ORG, KEYWORD, REFER] items = [] with open('E:\\textOut.txt', encoding='gbk') as f: row = { 'refer': [] } for line in f.readlines(): line = line.strip() # if not line: # continue if TITLE in line: column = 0 tl = line.split(TITLE)[1] refer_start = False row['tl'] = tl if AUTHOR in line: column = 1 au = line.split(AUTHOR)[1] row['au'] = au if ORG in line: column = 2 og = line.split(ORG)[1] row['og'] = og if KEYWORD in line: column = 3 kw = line.split(KEYWORD)[1] row['kw'] = kw if REFER in line: refer_start = True continue if refer_start: row['refer'].append(line) if refer_start and (not line): refer_start = False item = [row['tl'], row['au'], row['og'], row['kw']] for r in row['refer']: item.append(r) items.append(item) row = { 'refer': [] } with open('E:\\result.csv','w') as c: f_csv = csv.writer(c) f_csv.writerow(headers) f_csv.writerows(items) ``` **目前的问题是, 比如【来源篇名】某一组不存在,他就会说keyerror,** ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553757557_16466.png) **当我将 i= [row['tl'], row['au'], row['og'], row['kw']] 变成row.setdefult,他的过滤又将一些存在的东西过滤掉了,如下图,** ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553758231_316518.png) ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553758055_824889.png) ![图片说明](https://img-ask.csdn.net/upload/201903/28/1553758108_472763.png)
java读取excel时法文出现乱码
我需要用程序读取excel中的数据,并将其导入到数据库中, 但是excel中出现了如 Der Alpenjäger 中"ä"这样的法文字符,导致用jxl获取值 Workbook rwb = Workbook.getWorkbook(new File(attachmentFilePath), workbookSettings); Sheet sheet = rwb.getSheet(0); Cell[] cell = sheet.getRow(0); String str = cell[0].getContents(); 后得到的是乱码,进而写入mysql也是乱码 我mysql用的编码是utf8,直接在mysql中写入"ä"不会出现问题; 我用Eclipse开发,执行Sql="insert into table (name) values('ä')"也没用问题; 各位大大,帮忙想想办法啦 [b]问题补充:[/b] 以上几位说的我都试过了 还是不行啊 excel是用的什么编码啊? [b]问题补充:[/b] new String(str.getBytes("GBK"),"utf-8") workbookSettings.setEncoding("ISO-8859-1"); 试过了 还是乱码 [b]问题补充:[/b] workbookSettings.setEncoding("ISO-8859-1"); new String(str.getBytes("ISO-8859-1"),"utf-8") 我就是这么设置的 可是不行啊 excel是用的utf-16编码? 难道要new String(str.getBytes("utf-16"),"utf-8") ? [b]问题补充:[/b] 试了无数种编码转换 竟然都不行 wjm251说的方法我再试试
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
有网友说:2020年还不懂Spring就放弃Java吧?
前言 Spring这个词对于开发者想必不会陌生,可能你每天都在使用Spring,享受着Spring生态提供的服务,理所当然的用着SpringIOC和SpringAOP去实现老板交给你的功能 ,唔 它就是这样使用的(类声明为Bean组件,然后注入),没错 能完成老板任务,没毛病。如果向你提问什么是Spring,Spring有什么核心功能呢,你会想:这太简单了,Spring就是框架嘛,Spring核...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
没用过这些 IDEA 插件?怪不得写代码头疼
使用插件,可以提高开发效率。对于开发人员很有帮助。这篇博客介绍了IDEA中最常用的一些插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
《java面试宝典》三 类初始化和类实例化顺序
前言: 社长,4年api搬运工程师,之前做的都是一些框架的搬运工作,做的时间越长,越发感觉自己技术越菜,有同感的社友,可以在下方留言。现侧重于java底层学习和算法结构学习,希望自己能改变这种现状。 为什么大厂面试,更侧重于java原理底层的提问,因为通过底层的提问,他能看出一个人的学习能力,看看这个人的可培养潜力。随着springboot的流行,大部分的开发,起步就是springboot。也...
一份王者荣耀的英雄数据报告
咪哥杂谈本篇阅读时间约为 6 分钟。1前言前一阵写了关于王者的一些系列文章,从数据的获取到数据清洗,数据落地,都是为了本篇的铺垫。今天来实现一下,看看不同维度得到的结论。2环境准备本次实...
工作十年的数据分析师被炒,没有方向,你根本躲不过中年危机
2020年刚刚开始,就意味着离职潮高峰的到来,我身边就有不少人拿着年终奖离职了,而最让我感到意外的,是一位工作十年的数据分析师也离职了,不同于别人的主动辞职,他是被公司炒掉的。 很多人都说数据分析是个好饭碗,工作不累薪资高、入门简单又好学。然而今年34的他,却真正尝到了中年危机的滋味,平时也有不少人都会私信问我: 数据分析师也有中年危机吗?跟程序员一样是吃青春饭的吗?该怎么保证自己不被公司淘汰...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
张朝阳回应迟到 1 分钟罚 500:资本家就得剥削员工
loonggg读完需要2分钟速读仅需 1 分钟大家我,我是你们的校长。前几天,搜狐的董事局主席兼 CEO 张朝阳和搜狐都上热搜了。原因很简单,就是搜狐出了“考勤新规”。一封搜狐对员工发布...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
立即提问