转码

python转码时出现'illegal multibyte sequen'错误

元气小坏坏 提交于 2019-12-04 18:19:19
在Python中,可以对String调用decode和encode方法来实现转码。 比如,若要将某个String对象s从gbk内码转换为UTF-8,可以如下操作 s.decode('gbk').encode('utf-8′) 可是,在实际开发中,我发现,这种办法经常会出现异常: UnicodeDecodeError: ‘gbk' codec can't decode bytes in position 30664-30665: illegal multibyte sequence 这 是因为遇到了非法字符——尤其是在某些用C/C++编写的程序中,全角空格往往有多种不同的实现方式,比如\xa3\xa0,或者\xa4\x57,这些 字符,看起来都是全角空格,但它们并不是“合法”的全角空格(真正的全角空格是\xa1\xa1),因此在转码的过程中出现了异常。 这样的问题很让人头疼,因为只要字符串中出现了一个非法字符,整个字符串——有时候,就是整篇文章——就都无法转码。 解决办法: s.decode('gbk', ‘ignore').encode('utf-8′) 因为decode的函数原型是decode([encoding], [errors='strict']),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常; 如果设置为ignore

解决表单提交参数乱码问题【终极版】不看后悔

走远了吗. 提交于 2019-12-04 15:07:04
解决表单提交参数乱码问题【终极版】不看后悔 提交表单乱码问题,一直是困然网站开发人员的“吐血”问题,这问题虽说不痛不痒,但是绝对“恶心人”。之前自己遇到这个问题是,一直是能绕过就绕过,懒得理它,直到今天我又遇到它,我知道,我必须得治治它了。 表单提交通常有两种方式,一种是 GET 方式,一种时 POST 方式,两种方式这里就不详细解释了;然后表单参数的传递,也有两种方式,一种是直接把参数加在 URL 上,以 key=value 的方式传递,一种是在表单内部添加带 name 属性的标签,例如 input , select 标签等。那么它们组合在一起,就有 4 种方式: URL 传参 表单 标签传参 混合传参 GET A B C POST D E F 先说一下使用中会出现的问题。 A 、 C 方式中, URL 上的参数会被表单的参数冲掉 ,所以 A 、 C 方式不要使用。 在说说这几种方式的特点,在 GET 方式中,表单中所有的参数实际上都是被追加到 URL 上的(这也是 get 方式的 url 传参, url 参数被冲掉的原因),表单最后提交给服务器的就是一个 url ( url 长度一般限制为 255 字符)。这种方式产生的乱码最难缠。 在 POST 方式中,如果参数位于表单中(等同于 ajax 提交数据时的 data 内容),参数是以非 url 形式提交的

网页中加入视频播放组件,并使用ffmpeg对视频转编码

孤街浪徒 提交于 2019-12-04 06:18:11
网页加入视频可以用h5自带的video标签,这里用一个jQuery封装优化好的video视频组件videojs。 videojs官方网站:https://docs.videojs.com/index.html videojs下载:https://github.com/videojs/video.js/releases 这里有个问题是h5的video标签只支持三种编码的视频格式: 格式 IE Firefox Opera Chrome Safari Ogg No 3.5+ 10.5+ 5.0+ No MPEG 4 9.0+ No No 5.0+ 3.0+ WebM No 4.0+ 10.6+ 6.0+ No 通常我们使用MP4格式,但是MP4又分为“1.MPEG4(DivX)”、“2.MPEG4(Xvid)”、“3.AVC(H264)”三种类型。要想在h5播放成功,必须转换视频格式为H264才可以,好多做法是用格式工厂来转换,这样工作量大,比较麻烦,这里选择直接用 ffmpeg来进行转码 : 1.安装ffmpeg需要安装下面三个包: yasm :是一个汇编器,ffmpeg需要用到。 X264:x264是采用GPL授权的视频编码自由软件。x264的主要功能在于进行H.264/MPEG-4 AVC的视频编码,而不是作为解码器(decoder)之用 ffmpeg主要用于音视频转码

PHP Laravel 队列技巧:Fail、Retry 或者 Delay

我是研究僧i 提交于 2019-12-04 04:41:58
当创建队列jobs、监听器或订阅服务器以推送到队列中时,您可能会开始认为,一旦分派,队列工作器决定如何处理您的逻辑就完全由您自己决定了。 嗯……并不是说你不能从作业内部与队列工作器交互,但是通常情况下,哪怕你做了,也是没必要的。 这个神奇的骚操作的出现是因为“InteractsWithQueue”这个trait。.当排队作业正在从队列中拉出, 这个 [CallQueuedListener](https://github.com/laravel/framework/blob/5.8/src/Illuminate/Events/CallQueuedListener.php#L90-L104) 会检查它是否在使用 InteractsWithQueue trait, 如果是的话,框架会将底层的“队列jobs”实例注入到内部。 这个 “任务” 实例类似于一个包装了真正的 Job 类的驱动,其中包含队列连接和尝试等信息。 背景 我将以一个转码 Job 为例。 这是一个将广播音频文件转换成192kbps MP3格式的任务。因为这是在自由转码队列中设置的,所以它的作用有限。 检查尝试次数 attempts()是被调用的第一个方法, 顾名思义,它返回尝试次数,一个队列 job总是伴随着一个attempt启动。 此方法旨在与其他方法一起使用 ..., 类似 fail() 或者 release()

HandBrake for Mac(专业的视频转码器)

岁酱吖の 提交于 2019-12-04 04:00:31
HandBrake for Mac是一款专业的视频转码器工具,handbrake mac支持从几乎任何格式转换视频,自由和开源,简单,容易,快速。对于那些需要更多选择的人,可以调整许多基本和高级选项来改进您的编码。macdown分享HandBrake for Mac下载,欢迎需要的朋友,来macdown下载使用。 https://www.macdown.com handbrake mac软件介绍 HandBrake是一种将视频从几乎任何格式转换为现代广泛支持的编解码器的工具。可将DVD影片输出成MP4、AVI、OGM等各种不同的格式,让用户方便在各种不同的播放程序(器)中观看。 handbrake mac功能介绍 内置设备预设 通过选择针对您的设备优化的配置文件,或者选择适用于标准或高质量转换的通用配置文件,可在几秒钟内开始使用HandBrake。简单,容易,快速。对于那些需要更多选择的人,可以调整许多基本和高级选项来改进您的编码。 支持的输入源: 手刹可以处理大多数常见的多媒体文件以及任何不包含任何复制保护的DVD或BluRay源。 输出: 文件容器:.MP4(.M4V)和.MKV 视频编码器:H.265(x265和QuickSync),H.264(x264和QuickSync),H.265 MPEG-4和MPEG-2,VP8,VP9和Theora 音频编码器:AAC / HE

js 下载文件转码

回眸只為那壹抹淺笑 提交于 2019-12-03 23:04:58
Ext MIME Type .doc application/msword .dot application/msword .docx application/vnd.openxmlformats-officedocument.wordprocessingml.document .dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template .docm application/vnd.ms-word.document.macroEnabled.12 .dotm application/vnd.ms-word.template.macroEnabled.12 .xls application/vnd.ms-excel .xlt application/vnd.ms-excel .xla application/vnd.ms-excel .xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template .xlsm application/vnd.ms-excel

base 64转码PYTHON

雨燕双飞 提交于 2019-12-03 20:51:13
import os, base64 # 图片装换 # 将读取的二进制文件转换为base64字符串 bs64_str = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAgAFoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4

web开发中的JAVA字符转码

邮差的信 提交于 2019-12-03 05:23:35
二、基本概念 2.1 JAVA中字符的表达 JAVA中有char、byte、String这几个概念。 char 指的是一个UNICODE字符,为16位的整数。 java抓取网页保存的乱码问题解决 byte 是字节,字符串在网络传输或存储前需要转换为byte数组。在从网络接收或从存储设备读取后需要将byte数组转换成String。 String是字符串,可以看成是由char组成的数组。 String 和 char 为内存形式,byte是网络传输或存储的序列化形式。 举例: 英 String ying = “英”; char ying = ying.charAt(0); //返回第0位的字符 String yingHex = Integer.toHexString(ying); //字符和整数同是16位 82 F1 byte yingGBBytes = ying.getBytes(“GBK”); //转换成字节 GB编码的字节数值 D3 A2 2.2 编码方式的简介 String序列化成byte数组或反序列化时需要选择正确的编码方式。如果编码方式不正确,就会得到一些0x3F的值。常用的字符编码方式有ISO8859_1、GB2312、GBK、UTF-8/UTF-16/UTF-32。 ISO8859_1用来编码拉丁文,它由单字节(0-255)组成。 GB2312、GBK用来编码简体中文

IE浏览器报Promise未定义

匿名 (未验证) 提交于 2019-12-03 00:41:02
用vue-cli做的项目,用了promise,结果IE下报promise未定义,甚至在比较老的andriod手机浏览器上会显示空白页面,解决方案如下: npm install babel-polyfill --save 在build目录下,webpack.base.conf.js里 entry: { 即可。 【说明】vue-cli项目里默认有babel转码器,但是: 举例来说,ES6 在Array对象上新增了Array.from方法。Babel 就不会转码这个方法。如果想让这个方法运行,必须使用babel-polyfill,为当前环境提供一个垫片。 原文:https://www.cnblogs.com/c2016c/p/9325162.html

ECMAScript6转码器,ES6转ES5

匿名 (未验证) 提交于 2019-12-03 00:02:01
现在越来越多的前端开始关注ES6,也有一部分人开始用ECMAScript 6,但是ES6的一些新的特性并不被低版本的浏览器支持。 所以这次就分享一个ES6转ES5的方法。 一、首先建立一个文件夹,然后里面创建.babelrc文件 有时候这个文件创建不了的,可以从别处复制过来 .babelrc文件的内容填写如下: { "presets": [], "plugins": [] } .babelrc的后期修改需要手动填写。 二、npm init来初始化项目(一路回车就可以有yes就选择yes) 执行完成后得到package.json文件,这个文件里面的咱们不用管理 三、安装babel npm install -g babel-cli 这个是全局安装,你也可以选择目录安装 npm install --save-dev babel-cli 四、转码规则 //最新转码规则 npm install --save-dev babel-preset-latest//必装 //四个提案的转码规则,选装一个银行代码http://www.gendan5.com/swiftcode.html npm install --save-dev babel-preset-stage-0//展示阶段 npm install --save-dev babel-preset-stage-1//征求意见阶段 npm