乱码问题

关于Python解压zip中文乱码的问题 如何解压zip并且解决中文乱码的问题,困扰了我挺长时间的不过好在最后还是解决了,下面是代码: def unzip_it(file_path, new_path): right_list = [] wrong_list = [] NewPath = new_path + '\\' file = zipfile.ZipFile(file_path) # , 'r' ... 阅读详情

       在中文环境下编程,难免会遇到乱码问题,这是因为不同的条件下对于编码的要求不相同,所以如果在我们的程序中,对于同一段信息使用的字符集(charset)不同,那信息中的中文就会变成乱码。
        常见的乱码有三种,一是全问号,像"??????";二是特殊符号加一奇怪的繁体字,像"!_灑";第三种是包含了很多百分号和字母,像"A%KT%%F",这种情况其实不算乱码,只是还没有经过解码的字符串,下面我们还会提到。
        因为项目的原因,我有幸在半个月的时间里接触到了几种不同情况下的乱码,花费了不少的时间和精力来解决,这里就把他们总结一下,希望能对遇到相似问题的朋友提供一些帮助。
        根据乱码出现位置的不同,我把他们分为4类,然后根据具体的情况来分析解决:
1.字符串传输过程中出现乱码
        这个是最底层的乱码,一般来说,使用web容器和常用的mvc框架时,其内部已经自动执行了转码的操作,所以在前后台调试的时候,突然发现某个变量在debug时变成了乱码,的确是挺讨厌的。解决的方法同样底层,我们可以强制在字符串发出和接受的两端对其进行编码/解码,比如在后台编码,前台进行解码。此时前后台传递的,就是上面提到的第三种乱码。
        后台代码:

return URLEncoder.encode(optionValue.toString(), "UTF-8");

        前台代码:
  

optionValues = decodeURIComponent(optionValues)

2.压缩文件时,内容乱码
        这个是jdk里不大不小的一个bug,因为其在内部实现时默认指定了UTF-8作为唯一字符集,而且不可更改。解决这个问题有两种方法,一是修改jdk的代码,强制换掉字符集,但是这样程序就失去了移植性,所以并不推荐;二是使用第三方的压缩方法,比如这里使用的是commons-compress-1.4.1.jar里提供的方法:
 代码片段:
  

OutputStream out = null;
  BufferedOutputStream bos = null;
  ZipArchiveOutputStream zaos = null;
  try {

   out = new FileOutputStream(new File(outputFilePath));
   bos = new BufferedOutputStream(out);
   zaos = new ZipArchiveOutputStream(bos);
   zaos.setEncoding("UTF-8");
   
   for (int i = 0; i < inputFilePaths.size(); i++) {
    File file = new File(inputFilePaths.get(i));
    zaos.putArchiveEntry(new ZipArchiveEntry(file.getName()));
    IOUtils.copy(new FileInputStream(file.getAbsolutePath()), zaos);
    zaos.closeArchiveEntry();

   }

   zaos.flush();
   bos.flush();
   out.flush();

  } finally {
   close(zaos, bos, out);
  }

3.压缩文件时,文件名乱码
        这个问题不大不小,解决起来倒也简单,把程序中使用的原生java.util.zip.ZipOutputStream替换成ant.jar的org.apache.tools.zip.ZipOutputStream即可,代码完全兼容,只是后者多了一个设置字符集的方法。
        代码:

zipOutputStream.setEncoding("UTF-8");

4.文件传输时,文件名乱码
        在实现下载操作时,后台传回的文件可能本身是好好的,但一弹出下载框就乱码了,大家可能一下子就反应过来时http的headers拼的有问题,但是这种文件名的乱码,不是简单的添上一句"charset=utf-8"就能解决的,而应该在向请求附上文件时,对文件名进行处理。
        代码:

headers.setContentDispositionFormData("attachment", new String(exportFile.getName().getBytes("utf-8"), "ISO8859-1"));

PS:5.数据库乱码
	问题表征为,所有的汉字变成了全角问号“?”,原因是简易客户端plsql的的字符集没有配置或者与数据源配置冲突。解决方法是配置环境变量NLS_LANG,具体到本项目组中,应该设置为SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
	其实这个问题在每次登陆plsql的时候都可以看到现象,就是那个登陆成功后弹出的那个对话框,仔细看就会发现软件列出了你本地和数据源的字符集不同,最极端的情况是,警告你本地没有配置从而与数据源的字符集不符,这时就一定会出现乱码了。

 

Ubuntu中文字幕乱码亚洲影视的乱码问题 Ubuntu看电影总是加载中文字幕的时候出现乱码,后来发现是亚洲影视字符编码的问题,今天休假在家就写了一个小的中文字幕乱码字符转码的程序,目前来说满足我自己的需求了,代码如下: import sys,io if len(sys.argv) != 2: print "Please input file path!" else: f1 = io.open(sys.argv[1], "r", encoding="cp936") f2 = io.open(sys.argv[1] + ".new", "w", enc 阅读详情

相关推荐

【软件安装系列】Ubuntu+mysql5.7.27+Jira8.3.1+邮箱服务器配置+Confluence6.15.7安装经验和采坑总结

文章目录一、软件准备(百度云易被吞,就不放了)1.1 官网下载的新鲜的Jira和Confluence1.2 linux的jdk一份1.3 Jira和Confluence的破解程序或者破解包一份1.4 java的连接器一份二、安装过程1--java环境配置2.1 将下载下来的jdk包解压在/usr/local/java目录中2.2 写入环境变量三、安装过程2--mysql5.7.27环境配置3.1 ...

xiaosha_的博客 6890

中文乱码问题

本文为java web编程中中文乱码解决,其他的情况可以参考,原理相同。 1.中文无法显示 有些Jsp中,中文根本无法显示。通常的原因是没有把文件头上的字符集设置为中文字符集。一定要保证文件头上写明: 或者 2.提交过程中的显示乱码 原理:中文参数提交时,服务器将其认成 ISO-8859-1 编码,而网页上显示的是GB2312 编码,两者不能兼容。有三种方法解决这个问题:

guomutian911的专栏 1万+

OCEAN 电路仿真

介绍利用 Cadence OCEAN 进行电路脚本仿真的方法

weixin_43249158的博客 4402

用Python制作的一本道生成器,最后笑喷了!

今天皮一下,众所周知,一本道是一本正经的胡说八道的简称,想必写过议论文的小伙伴,都知道引经据典是议论文高分必备,套上名人的话更加具有说服力是语文老师必教的知识点。 所以呢,今天介绍的这个生成器就走的是引经据典的道路,不过写出的文章是程序自动生成的,给个关键词,顷刻间生成一篇洋洋洒洒、引经据典的文章,今天就来见识一下。 「软件概览」 软件名字叫做:狗屁不通文章生成器,额,这个名字有些硬核哈,软...

轻松学python的博客 13万+

osgearth2.10 demo功能介绍

osgearth-2.10 demo: 说明: 1、运行环境win7 x64 旗舰版,CPU i5-6400 8核,8G内存; 2、括号内是对应demo的测试参数(.earth); 3、配置OSG_FILE_PATH; 4、参数命令行可以查看各个demo需要的输入参数; 5、前缀说明:gui界面程序、cmd控制台程序、non功能未知; 6、程序后括号里的non表示不需要通过命令行输入参数; 示例: 1、gui:osgearth_3pv(simple.earth):相机与地球的投影关系,Range表示相机

rach09的专栏 2421

在 Windows 上使用 Anaconda 创建 配置 YOLOv8虚拟环境,并更改 pip 源以及以 可编辑模式 安装ultralytics

前往 NVIDIA cuDNN 下载页面,下载与您安装的 CUDA 版本匹配的 cuDNN 版本。:根据您的系统和 CUDA 版本,选择适当的 whl 文件。如下12.7,表示最高可装12.7版本CUDA,与上图中的支持的最高cuda版本一致。,无需重新安装,从而大幅提升开发效率,适用于项目开发、调试或依赖本地未发布的版本时使用,但需确保当前目录包含。:访问 NVIDIA 官方网站,下载与您的显卡和操作系统兼容的 CUDA 版本。首先,确保NVIDIA 显卡支持 CUDA,并安装相应版本的驱动程序。

weixin_44115575的博客 1893

日本官方版灌篮高手结局

       (一)再见高中时代    湘北在全国大赛八强战中输给了爱知县的代表.海南决赛以几分的差距输给名朋工业.名朋工业的森重宽是当年的MVP.而由海南,湘北.翔阳,陵南组成的神奈川联队将继续征战.而联队也获得了不错的战绩(具体战绩不明).第二年,湘北的赤木,目暮,三井离开高中升上大学,同样鱼住离开陵南并在父亲的餐馆中打工,翔阳的藤真为了原一次高中拿到县冠军而暂时放弃上大学.海南的阿牧在临走时

water7的专栏 3万+

AI产品经理面试宝典第9天:关于AI产品经理的挑战与转型怎么回答

AI技术重构产品逻辑,AI产品经理需直面三大核心命题:用户定位差异、技术融合边界、商业价值转化。本文从千道真题中提炼出面试高频考点,剖析AI产品经理如何突破传统思维定式,在B端需求与C端体验间构建价值桥梁,用数据驱动产品创新,破解技术落地的隐性壁垒。掌握这三重跃迁法则,助你在AI浪潮中脱颖而出。

打造全国最全的AI Agent开发知识领域的博客 175

乱码问题_Neovim 乱码问题

最近在使用 Neovim 的过程中发现一个问题,使用 system()函数或者:!command这种方式去运行一个命令,有时候输出是乱码的。比如,我们执行一个不存在的命令nocommand:如果你在内置终端内运行 :那么到底是怎么回事呢?原来在 windows 系统下,这些错误信息输出的编码是 cp936,而 neovim-qt 使用的是 utf-8 来展示,自然就有乱码了。解决的方式,使用 ic...

weixin_34177601的博客 1735

基于Playwright和反爬虫规避技术的雪球股票讨论数据采集方案

随着量化投资和社交投资的兴起,雪球作为中国领先的投资社交平台,其用户讨论数据成为研究市场情绪的重要来源。本文将详细介绍如何使用最新的Playwright技术和反爬虫规避策略,构建一个高效、稳定的雪球股票讨论爬虫系统。本文详细介绍了基于Playwright的雪球股票讨论爬虫实现方案,涵盖了从基础配置到高级反爬虫策略的各个方面。AI驱动的反爬虫对抗更智能的请求调度算法区块链技术在数据溯源中的应用联邦学习在数据采集中的运用。

2201_76125261的博客 1005

AMBA-CHI协议详解(二)

读事务,写事务,原子事务,Stash事务,Dataless事务,DVM事务,Retry事务。

Crazzy_M的博客 6652

redis乱码问题

Redis乱码问题

G823909的博客 3614

C#调用opencv的dll

opencv算法和界面配合,刚入职的时候尝试过,利用的MFC,调试起来很痛苦。 后来基本都没怎么用界面,DOS的黑窗口,opencv自带的显示界面及滑动条凑合着调试用。 最近有点时间,刚好双十一在一个视觉群里看到了一个讲C#调用opencv的dll的课程,鉴于群主也是那门课的讲师,在平时解答群员的问题的时候很细心,能力也很强,因此有了这篇文章。 根据相机不同动态调用相机默认的属性...

Learning by doing 2974

javaWeb中所有乱码问题解决(HTML乱码、tomcat乱码、请求[get/post]乱码、响应乱码)

HTML乱码、tomcat控制台乱码、请求(get、post)乱码、响应乱码解决

weixin_65584018的博客 1496

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Servlet乱码问题

一、请求乱码问题   乱码原因:由于在解析过程中默认使用的编码方式为 ISO-8859-1(此编码不支持中文),所以解析时会出现乱码。 GET请求 Tomcat8.0及以上版本不会乱码 Tomcat7及以下版本会乱码,解决方式: new String(request.getParameter(“name”).getBytes(“ISO-8859-1”), “UTF-8”); POST请求 会乱码,通过设置服务器解析编码格式解决: request.setCharacterEncoding(“UTF-

s_tupid的博客 2659

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Tomcat乱码问题总结

乱码问题 今天遇到了乱码问题,百度了好久,记录总结一下各个解决方案。下次再遇到直接看看。 Tomcat 乱码问题 我的项目在自己的电脑上运行没有问题,部署在别的电脑上出现了乱码问题,于是首先考虑是Tomcat问题。 配置server.xml 中的 ...

唐糖棠糖的博客 180

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java中的乱码问题

​ 1. 设置的字符集要使用一个支持中文的字符集​​ 2. 设置字符集 配置UTF-8当前视图文件的字符集通过来告知浏览器通过什么字符集来解析当前文件</</</</​。

SuoGG的博客 464

汉字乱码问题

做爬虫的时候,常常会因为各种乱码问题而头疼不已,你可能会遇到字体加密的乱码,会遇到抓包工具缺少证书乱码,可能会遇到网页的编码方式是不是常规的编码格式出现乱码,这里就讲一下我今天遇到的乱码问题。 首先讲一下,我遇到的问题,作者是在抓包工具上抓到一个链接,然后复制出headers,然后模拟浏览器进行请求,刚开始还好好的很正常,并没有什么不对的地方,但是不知道什么原因突然请求回来的内容中汉字出现了乱码...

学习python 1341

Log4net 乱码问题解决

Log4net 乱码问题解决 转载于:https://blog.youkuaiyun.com/weixin_34270606/article/details/85743810 在将log4net输出到UdpAppender会出现乱码问题,当然,丢到第三方日志分析工具glaylog下,也出现中文乱码。 <?xml version="1.0"?> <configuration> ...

taoerchun的专栏 5115

Tomcat乱码问题

问题:淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server容器启动乱码--tomcat 解决:修改、tomcat/conf/logging.properties文件。 如果有:java.util.logging.ConsoleHandler.encoding = utf-8 修改为:java.util...

weixin_34004750的博客 186

hbase 中文乱码 查询_JavaWeb 乱码问题终极解决方案

经常有读者问 JavaWeb 乱码的问题,昨天又有一个小伙伴问及此事,其实这个问题很简单,但是想要说清楚却并不容易,因为每个人乱码的原因都不一样,给每位小伙伴都把乱码的原因讲一遍也挺费时间的,因此,松哥今天决定写一篇文章,和大伙好好捋捋 JavaWeb 中的乱码问题。对于一些老司机而言,其实并不太容易遇到乱码问题,但是对于一些新手来说,乱码几乎是家常便饭,而且每当乱码时,网上搜了一大堆解决方案,发...

weixin_35882650的博客 1503

解决SpringMVC中乱码问题

解决SpringMVC中乱码问题 1.post提交 在web.xml中配置SpringMVC自带的过滤器,如下: &lt;!-- 处理POST提交乱码问题 --&gt; &lt;filter&gt; &lt;filter-name&gt;encoding&lt;/filter-name&gt; &lt;filter-class&gt;org.springframework.web....

ghsticker的博客 239

SpringMVC中的乱码问题

乱码问题是我们在开发时经常遇到的问题,我们遇见乱码可能会异常的头疼,因为那么多页面,到底是哪一个没有进行编码呢,今天记录并学习一下SpringMVC中的乱码问题。一般的编码问题,我们使用Spring的过滤器就能很好的解决了,本文只是自己学习一下在SpringMVC中出现乱码问题的排查步骤以及方法,以便日后出现问题时回看.如果以上配置都无法解决乱码问题,那只能使用我们的终极大招------大神的处理办法。我们可以使用Spring为我们提供的编码过滤器,在web.xml文件中配置。

fj123321666的博客 1432

中文乱码问题总结

转自:http://www.52testing.com/showart.asp?id=59  一 概述     在我们测试Web应用项目的时,经常会遇到中文乱码问题,我也是在做框架测试时遇到这类情况,为什么会有中文乱码呢?带着这个疑问,对中文乱码问题产生的由来做了大致的分析,希望对各位有用。     二 字符集介绍     我们知道在计算机中,只有二进制的数据,不管数据是在内存中,

nashviller的专栏 1953

谈谈tomcat引起的中文乱码问题

平时在使用tomcat做一些服务的时候经常遇到各种乱码问题,要么是控制台输出乱码或者输出日志乱码,要么页面接收乱码,非常烦人。引起乱码的原因多个,从网上学习了很多,现在尝试简单总结给大家分享 一、页面输出乱码 有三种可能 1.server.xml配置未注明编码格式 ...

chonghu5376的博客 4633
上一篇: oracle字段从varchar2转化为clob
下一篇: apache ftp上传下载
timestone
博客等级 码龄17年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值