• 关于

    java代码设置乱码

    的搜索结果

回答

IDE是可以设置自己的默认编码的,Eclipse和Idea都支持;设置为UTF-8就好。######@胖猫 : 你发的这段代码没有意义好像,System.out.println(unDecodedString);直接就可以打出,你发的代码应该是linux下的(utf-8),在windows下(gbk)乱码。######我试过了才发帖的,会不会是你本地的编码不对?######我试过不行,就如同前面所说的应该\u其实是\u,转义后只有一个###### package moxia; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; public class AsciitoNative { public static void main(String[] args) { String str = "\u4e16\u754c\u4e0a\u7684\u4e00\u5207\uff0c\u8fd8\u662f\u771f\u7684\u5417\uff1f"; FileOutputStream fos = null; BufferedReader br = null; File txt=new File("test.txt"); if(!txt.exists()){ try { txt.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } byte bytes[]=new byte[512]; bytes=str.getBytes(); int b=str.length(); try { fos = new FileOutputStream(txt); fos.write(bytes,0,b); } catch (Exception e) { e.printStackTrace(); } finally{ if(fos!=null){ try { fos.close(); //txt.delete(); } catch (IOException e) { e.printStackTrace(); } } } try { Process p=Runtime.getRuntime().exec("native2ascii.exe -reverse " + txt.getAbsolutePath()); br = new BufferedReader(new InputStreamReader(p.getInputStream())); String n; while ((n=br.readLine())!=null){ System.out.println(n); } } catch (IOException e) { e.printStackTrace(); } finally { try { if(br!=null){ br.close(); } } catch (IOException e) { e.printStackTrace(); } } } }######ide环境编码是utf8,你程序单独运行环境编码不一定设定为utf8,因此需要显示设定,不然就会出现你那种乱码
kun坤 2020-06-06 18:25:33 0 浏览量 回答数 0

问题

url 发送请求乱码解决。 400 请求报错 

来源:http://blog.csdn.net/shiqidide/article/details/6987449 最近遇到的这个问题,在百度找到的 发出来!作者地址是上面的网站 最近又碰到...
kun坤 2020-05-28 16:04:50 5 浏览量 回答数 1

回答

因为那个文件本来就是gbk编码格式的######回复 @lemondwm : 是什么文件?如果是文本文件你用txt打开看下,然后用另存为的方式保存为utf8格式的######但是用GBK拿到的是乱码呀~~~~###### InputStreamReader reader = new InputStreamReader(new FileInputStream("\test.txt"), "GBK"); BufferedReader bufferedReader = new BufferedReader(reader); String str; while ((str = bufferedReader.readLine()) != null) { System.out.println(str); } 读取文件时指定编码试试 ######谢谢,楼下详解懂了###### 不论什么数据,存储上(无论是磁盘,还是内存),本质上都可以看成二进制的字节数组。而字符流的字符编码,是把二进制数据和字符进行的双向映射。 Java内部char类型整形值表示,你可以看成一个固定的字符编码(unicode,简单点可以理解成UTF16,实际还有代码点等问题,这部分建议阅读下Core Java2的相关章节)。 UTF8编码的文件,以GBK的方式读入Java进程,可以理解为,把文件的二进制流按GBK解码为对应的字符(这时候会出现乱码),再按Java的内部编码转换为对应的char[]。输出也是把这个过程反过来。 如果一个二进制数据,使用同一个字符编码解码,编码这两个操作是可逆的。最终,GBK读再GBK写,当然会还原回去(然后你再用外部工具按UTF8)。但要注意一个特殊情况,对于一个字符编码,并不是所有的二进制内容都是合法的,如果在解码的时候发生无法解码的情况,这时候数据可能会出现损坏丢失。 ######谢谢,懂了( ̄∀ ̄)###### java的编码我认为是有3种。 1.文件编码。这里的文件只是单只文件而已。 2.流编码。就是你的IO设置的编码。 3.内容编码。这里是你写入的内容的编码。 这3个编码,缺一不可,只要某一项不一致,读出来都会乱码。
kun坤 2020-06-07 20:24:38 0 浏览量 回答数 0

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动: 或许你挑灯夜战只为一道难题 或许你百思不解只求一个答案 或许你绞尽脑汁只因一种未知 那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了 他们用户自己手中的技术来帮助用户成长 本次活动特邀百位阿里技术专家对Java常...
管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19

回答

求大神######来人啊######建议直接用 Commons-IO 这个库来读写文件。一行代码搞定,又不担心出错 ######nio######MappedByteBuffer###### 你这是闹哪样? 你知不知道UTF-8,UTF-16(BE,LE先不谈)都是变长码? new byte[1024],一次读1024个字节, 你怎么保证最后读的那个字节刚好就是一个码元的结束? 玩编码之前,补基础知识先。 http://zh.wikipedia.org/wiki/UTF-16 http://zh.wikipedia.org/wiki/UTF-8 ###### 引用楼上的,这类乱码问题必涉及Charset类,你可以自行编写CharsetDecoder相关代码,但相当的麻烦,所以还是规规矩矩地用Reader接口吧。 内存溢出是代码问题:看看test1方法System.out.println(string);把读取到的字符串立即打印到控制台,此后这字符串占用资源会被释放的。而test2方法buffer.append(buf, 0, count);是不断连接字符串,相当于正在把整个90M文件塞进内存,还能不爆吗? 最后绝大多数场合请用StringBuilder替换StringBuffer ######谢谢######你的test2把InputStreamReader用BufferedReader再包装一下,然后直接readline()######怎么个包装法###### 引用来自“沈学良”的答案 你的test2把InputStreamReader用BufferedReader再包装一下,然后直接readline() BufferedReader in    = new BufferedReader(new InputStreamReader(new FileInputStream("foo.in"))); 或者: BufferedReader in    = new BufferedReader(new FileReader("foo.in")); 然后: String line = in.readLine(); ######回复 @协议 : 大锅,你的StringBuffer就别用啦,直接打印不就行啦...######我明天去公司试试你的方法######不行不行 一样内存爆掉###### 你这是windows环境吧,默认字符编码是GBK或者gb20xx ,  java用的是unicode , 你实例化string 要指明字符集, new String(,,"utf-8") 。 另外, 90m真不大。在程序启动时设置JVM内存参数即可,设置Xmx大于90M ######现在规定内存就这么大!不能设置jvm内存###### 貌似 我也看成读取超级大文件了,晕。。 原来是读取文本超级大 ######嘿嘿。。。
kun坤 2020-06-07 17:10:07 0 浏览量 回答数 0

问题

请教java参数转码问题 400 请求报错 

 跟大家请教个问题,java http 协议 http://xxxx/xxx/xxx?payname=哈喽  ,get 方式获取到的编码是iso8859-1(也可以设置tomcat编码解决),      最近跟第三方接...
kun坤 2020-05-29 09:54:50 3 浏览量 回答数 1

回答

密钥证书方式密钥匹配:校验应用私钥和应用公钥是否匹配流程。 注:若需匹配RSA2密钥(非证书模式)可详见【如何检验RSA2密钥是否匹配】。 1、签名验签工具下载 工具下载地址:https://docs.open.alipay.com/291/105971 注:解压缩时,解压缩路径中不要有空格和中文字段,否则会导致工具乱码或者闪退 2、下载商户应用公钥证书 在开发者中心中选择自己需验证的应用。 在需要校验应用的接口加签方式的应用公钥证书位置,点击下载证书。 3、获取上传公钥数据 Java: String publicKey = AlipaySignature.getAlipayPublicKey("商户应用公钥证书绝对路径"); System.out.println("应用公钥数据:"+publicKey); php: $aop = new AopCertClient(); $alipayCertPath="商户应用公钥证书绝对路径"; $alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath); echo '应用公钥数据'.$alipayrsaPublicKey; .NET: String AlipayPublicCertPath = "商户应用公钥证书绝对路径"; //解析公钥的值需要引用using Org.BouncyCastle.X509和using Aop.Api.Util; X509Certificate alipayPublicKeyCert = AntCertificationUtil.ParseCert(File.ReadAllText(AlipayPublicCertPath)); String alipayPublicKey = AntCertificationUtil.ExtractPemPublicKeyFromCert(alipayPublicKeyCert); Console.WriteLine("应用公钥数据" + alipayPublicKey); 4、设置密钥数据 在工具的“密钥匹配”选项中: 商户应用私钥:代码中的私钥数据。 商户应用公钥:根据下载的商户应用公钥证书解析的商户应用公钥数据。 注:确认获取数据的appid一致。 5、匹配数据 点击“匹配”,查看匹配结果进行确认。 注:沙箱环境匹配密钥与正式环境一致,选择对应密钥设置方式
保持可爱mmm 2020-05-05 16:46:19 0 浏览量 回答数 0

回答

XSS 攻击有两⼤要素: 攻击者提交恶意代码。浏览器执⾏恶意代码。 针对第⼀个要素:我们是否能够在⽤户输⼊的过程,过滤掉⽤户输⼊的恶意代码呢? 输⼊过滤 在⽤户提交时,由前端过滤输⼊,然后提交到后端。这样做是否可⾏呢? 答案是不可⾏。⼀旦攻击者绕过前端过滤,直接构造请求,就可以提交恶意代码了。 那么,换⼀个过滤时机:后端在写⼊数据库前,对输⼊进⾏过滤,然后把“安全的”内容,返回给前端。这样是否可⾏呢? 我们举⼀个例⼦,⼀个正常的⽤户输⼊了 5 < 7 这个内容,在写⼊数据库前,被转义,变成了 5 < 7 。 问题是:在提交阶段,我们并不确定内容要输出到哪⾥。 这⾥的“并不确定内容要输出到哪⾥”有两层含义: ⽤户的输⼊内容可能同时提供给前端和客户端,⽽⼀旦经过了 escapeHTML() ,客户端显示的内容就变成了乱码(5< 7)。 在前端中,不同的位置所需的编码也不同。 当5 < 7 作为 HTML 拼接⻚⾯时,可以正常显示: <div title="comment">5 < 7</div> 当5 < 7 通过 Ajax 返回,然后赋值给 JavaScript 的变量时,前端得到的字符串就是转义后的字符。这个内容不能直接⽤于 Vue 等模板的展示,也不能直接⽤于内容⻓度计算。不能⽤于标题、alert 等 所以,输⼊侧过滤能够在某些情况下解决特定的 XSS 问题,但会引⼊很⼤的不确定性和乱码问题。在防范 XSS 攻击时应避免此类⽅法 当然,对于明确的输⼊类型,例如数字、URL、电话号码、邮件地址等等内容,进⾏输⼊过滤还是必要的 既然输⼊过滤并⾮完全可靠,我们就要通过“防⽌浏览器执⾏恶意代码”来防范 XSS。这部分分为两类: 防⽌ HTML 中出现注⼊防⽌ JavaScript 执⾏时,执⾏恶意代码 预防存储型和反射型 XSS 攻击 存储型和反射型 XSS 都是在服务端取出恶意代码后,插⼊到响应 HTML ⾥的,攻击者刻意编写的“数据”被内到“代码”中,被浏览器所执⾏。 预防这两种漏洞,有两种常⻅做法: 改成纯前端渲染,把代码和数据分隔开。对 HTML 做充分转义。 纯前端渲染 纯前端渲染的过程: 浏览器先加载⼀个静态 HTML,此 HTML 中不包含任何跟业务相关的数据。然后浏览器执⾏ HTML 中的 JavaScript。JavaScript 通过 Ajax 加载业务数据,调⽤ DOM API 更新到⻚⾯上。 在纯前端渲染中,我们会明确的告诉浏览器:下⾯要设置的内容是⽂本( .innerText ),还是属性( .setAttribute ),还是样式( .style )等等。浏览器不会被轻易的被欺骗,执⾏预期外的代码了。 但纯前端渲染还需注意避免 DOM 型 XSS 漏洞(例如 onload 事件和 href 中的 javascript:xxx 等,请参考下⽂”预防 DOM 型 XSS 攻击“部分)。 在很多内部、管理系统中,采⽤纯前端渲染是⾮常合适的。但对于性能要求⾼,或有 SEO 需求的⻚⾯,我们仍然要⾯ 对拼接 HTML 的问题。 转义 HTML 如果拼接 HTML 是必要的,就需要采⽤合适的转义库,对 HTML 模板各处插⼊点进⾏充分的转义。 常⽤的模板引擎,如 doT.js、ejs、FreeMarker 等,对于 HTML 转义通常只有⼀个规则,就是把 & < > " ' / 这⼏个字符转义掉,确实能起到⼀定的 XSS 防护作⽤,但并不完善: 所以要完善 XSS 防护措施,我们要使⽤更完善更细致的转义策略。 例如 Java ⼯程⾥,常⽤的转义库为 org.owasp.encoder 。以下代码引⽤⾃ org.owasp.encoder 的官⽅说明。 <!-- HTML 标签内⽂字内容 --> <div><%= Encode.forHtml(UNTRUSTED) %></div> <!-- HTML 标签属性值 --> <input value="<%= Encode.forHtml(UNTRUSTED) %>" /> <!-- CSS 属性值 --> <div style="width:<= Encode.forCssString(UNTRUSTED) %>"> <!-- CSS URL --> <div style="background:<= Encode.forCssUrl(UNTRUSTED) %>"> <!-- JavaScript 内联代码块 --> <script> var msg = "<%= Encode.forJavaScript(UNTRUSTED) %>"; alert(msg); </script> <!-- JavaScript 内联代码块内嵌 JSON --> <script> var __INITIAL_STATE__ = JSON.parse('<%= Encoder.forJavaScript(data.to_json) %>'); </script> <!-- HTML 标签内联监听器 --> <button onclick="alert('<%= Encode.forJavaScript(UNTRUSTED) %>');"> click me </button> <!-- URL 参数 --> <a href="/search?value=<%= Encode.forUriComponent(UNTRUSTED) %>&order=1#top"> <!-- URL 路径 --> <a href="/page/<%= Encode.forUriComponent(UNTRUSTED) %>"> <!-- URL. 注意:要根据项⽬情况进⾏过滤,禁⽌掉 "javascript:" 链接、⾮法 scheme 等 --> <a href='<%= urlValidator.isValid(UNTRUSTED) ? Encode.forHtml(UNTRUSTED) : "/404" %>'> link </a> 可⻅,HTML 的编码是⼗分复杂的,在不同的上下⽂⾥要使⽤相应的转义规则。 预防 DOM 型 XSS 攻击 DOM 型 XSS 攻击,实际上就是⽹站前端 JavaScript 代码本身不够严谨,把不可信的数据当作代码执⾏了。 在使⽤ .innerHTML 、 .outerHTML 、 document.write() 时要特别⼩⼼,不要把不可信的数据作为 HTML 插到⻚⾯上,⽽应尽量使⽤ .textContent 、 .setAttribute() 等。 如果⽤ Vue/React 技术栈,并且不使⽤ v-html / dangerouslySetInnerHTML 功能,就在前端 render 阶段避免innerHTML 、 outerHTML 的 XSS 隐患。 DOM 中的内联事件监听器,如 location 、 onclick 、 onerror 、 onload 、 onmouseover 等, 标签的 href 属性,JavaScript 的 eval() 、 setTimeout() 、 setInterval() 等,都能把字符串作为代码运⾏。如果不可信的数据拼接到字符串中传递给这些 API,很容易产⽣安全隐患,请务必避免。 <!-- 内联事件监听器中包含恶意代码 --> ![](https://awps-assets.meituan.net/mit-x/blog-images-bundle-2018b/3e724ce0.data:image/png,) <!-- 链接内包含恶意代码 --> <a href="UNTRUSTED">1</a> <script> // setTimeout()/setInterval() 中调⽤恶意代码 setTimeout("UNTRUSTED") setInterval("UNTRUSTED") // location 调⽤恶意代码 location.href = 'UNTRUSTED' // eval() 中调⽤恶意代码 eval("UNTRUSTED") </script> 如果项⽬中有⽤到这些的话,⼀定要避免在字符串中拼接不可信数据。 其他 XSS 防范措施 虽然在渲染⻚⾯和执⾏ JavaScript 时,通过谨慎的转义可以防⽌ XSS 的发⽣,但完全依靠开发的谨慎仍然是不够的。 以下介绍⼀些通⽤的⽅案,可以降低 XSS 带来的⻛险和后果。 Content Security Policy 严格的 CSP 在 XSS 的防范中可以起到以下的作⽤: 禁⽌加载外域代码,防⽌复杂的攻击逻辑禁⽌外域提交,⽹站被攻击后,⽤户的数据不会泄露到外域禁⽌内联脚本执⾏(规则较严格,⽬前发现 GitHub 使⽤)禁⽌未授权的脚本执⾏(新特性,Google Map 移动版在使⽤)合理使⽤上报可以及时发现 XSS,利于尽快修复问题 输⼊内容⻓度控制 对于不受信任的输⼊,都应该限定⼀个合理的⻓度。虽然⽆法完全防⽌ XSS 发⽣,但可以增加 XSS 攻击的难度。 其他安全措施 HTTP-only Cookie: 禁⽌ JavaScript 读取某些敏感 Cookie,攻击者完成 XSS 注⼊后也⽆法窃取此 Cookie。验证码:防⽌脚本冒充⽤户提交危险操作。 过滤 Html 标签能否防⽌ XSS? 请列举不能的情况? ⽤户除了上传 <script>alert('xss');</script> 还可以使⽤图⽚ url 等⽅式来上传脚本进⾏攻击 <table background="javascript:alert(/xss/)"></table> <img src="javascript:alert('xss')"> 还可以使⽤各种⽅式来回避检查, 例如空格, 回⻋, Tab <img src="javas cript: alert('xss')"> 还可以通过各种编码转换 (URL 编码, Unicode 编码, HTML 编码, ESCAPE 等) 来绕过检查 <img%20src=%22javascript:alert('xss');%22> <img src="javascript&#58alert(/xss/)">
前端问答 2019-12-23 12:43:05 0 浏览量 回答数 0

问题

linux下钉钉接口调用失败

同样的代码windows下面没有问题,发布到linux下时,获取accesstoken失败 java.io.IOException: HTTPS hostname wrong:  should be <oa...
don_shen 2019-12-01 20:59:26 6954 浏览量 回答数 2

问题

jfreechart的TimeSeriesChart时间轴TimeSeries问题?报错

使用Jfreechart时,我的X轴数据TimeSeries的时间跨度是从0-23点,可是我发现当数据中包含12点的时候,TimeSeries会自动将该时间设置为0点,难道是要将X轴设...
爱吃鱼的程序员 2020-06-15 19:26:26 0 浏览量 回答数 1

问题

2018python技术问答集锦,希望能给喜欢python的同学一些帮助

小编发现问答专区中有很多人在问关于python的问题,小编把这些问题汇总一下,希望能给喜欢python的大家一些启示和帮助 本帖不定期更新,喜欢的可以收藏哦 python可能替代Java吗?感觉现在很多Java程序员都跑去学python。h...
技术小能手 2019-12-01 19:31:10 2040 浏览量 回答数 2

问题

【javascript学习全家桶】934道javascript热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动:或许你挑灯夜战只为一道难题或许你百思不解只求一个答案或许你绞尽脑汁只因一种未知那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了他们用户自己手中的技术来帮助用户成长本次活动特邀百位阿里技术专家对javascript常...
管理贝贝 2019-12-01 20:07:22 6202 浏览量 回答数 1

问题

java上传下载报错

项目发布运行在Tomcat服务器上,文件上传没有问题,路径中的目录也都对,但是在浏览器端下载的时候就出现问题了, 访问到的下载路径中有两个文件夹合并了,代码如下ÿ...
DM。 2020-05-27 10:54:16 7 浏览量 回答数 2

问题

SaaS模式云数据仓库MaxCompute 百问百答合集(持续更新20210409)

产品简介 什么是MaxCompute呢? https://developer.aliyun.com/ask/289579 使用MaxCompute需要什么专业技能? https://developer.aliyun.co...
亢海鹏 2020-05-29 15:10:00 42262 浏览量 回答数 34

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT