编码转换

C++实现base64编码解码

亡梦爱人 提交于 2020-02-17 06:34:50
base64编码是将 3个字符 (共 24位 2进制)分成一组,然后 每6位 2进制编成一个新的字符。 也就是 3 x 8 = 6 x 4 。 6位2进制可以表示2的6次方个数,也就是64个,所以叫base64编码。 贴一张base64编码表, 由A-Z、a-z、0-9、+、/共64个字符组成 需要注意的是, base64编码后的长度一定是4的倍数。 当需要转换的字符个数正好是3的倍数时,可以直接转换, 转换后的长度为len(str)/3 x 4 当字符个数为除3余1时,前面按照常规,多出那一个字符就需要在后面补0(2进制),表示出2个base64字符,然后剩下两个用=填充。 当字符个数为除3余2时,前面按照常规,多出那两个字符就需要在后面补0(2进制), 表示出3个base64字符,然后剩下两个用=填充。 C++实现base64编码解码 # include <iostream> # include <cstdio> # include <cstdlib> # include <cstring> # include <algorithm> using namespace std ; string base64_encode ( string str ) { string base64_table =

H.265/HEVC的编码结构和块划分

时光总嘲笑我的痴心妄想 提交于 2020-02-17 06:15:30
一、CTU HEVC中引入了树形编码单元(Coding Tree Unit),即一帧图像可以划分为若干个互不重叠的CTU,如下图所示。 CTU的宽度和高度以一个序列参数集表示,这意味着视频序列中的所有CTU都具有相同的大小:64×64、32×32或16×16。 每个CTU由同一位置处的一个亮度CTB和两个色度CTB再加上相应的语法元素组成,尺寸由编码器指定,且可大于宏块尺寸,如下图所示。 对于一个LxL的CTU,包括一个LxL的亮度CTB和两个L/2 x L/2的色度CTB,L的值可以等于16、32或64,由SPS中指定的编码语法元素确定。 二、CTB 在高分辨率视频编码中,使用较大的CTB可以获得更好的压缩性能。一个CTB可以直接作为一个编码块CB,也可以进一步通过四叉树形式划分为多个小的CB,如下图所示。 CB的大小是可变的,亮度CB最大为64x64,最小为8x8。大CB可以提高平滑区域的编码效率,小CB可以很好的处理图像局部细节,使复杂图像的预测更加准确。 三、CU 一个亮度CB和相应的两个色度CB及对应的语法元素组成一个编码单元CU。CTU到采用基于四叉树循环分层结构进行划分,一个CTU可能只包含一个CU(没有进行划分),也可能被划分为多个CU。 四、PU和PB CB对于预测类型决策来说已经足够好了,但它仍然可能太大,无法存储运动矢量(帧间预测)或帧内预测模式。因此

使用java进行文件编码转换

折月煮酒 提交于 2020-02-17 01:09:31
在开发过程中,可能会遇到文件编码的转换,虽然说开发工具eclipse可以转换编码,但是有的情况却很不方便。比如,原来文件本身的编码是GBK,现在要转换成UTF-8,如果直接在eclipse中把文件编码修改成UTF-8,恭喜你,是乱码,因为不能直接从GBK到UTF-8进行转换,这时就需要我们手动的来转换编码。下面是一个文件编码转换的工具类。 package com.mikan.stuff; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.nio.charset.Charset; import java.nio.charset.UnsupportedCharsetException; public class FileCharsetConverter { public static void main(String[] args)

Python json格式处理

ぃ、小莉子 提交于 2020-02-16 22:44:51
Python json格式处理 首先放一段代码 import requests import jsonpath import json f=open('ip.txt','r',encoding='utf-8') for my_ip in f.readlines(): my_ip=str(my_ip[:-1]) respons=requests.get('http://ip-api.com/json/{ip}?lang=zh-CN'.format(ip=my_ip)).json() countr=jsonpath.jsonpath(respons,"$..country") sheng=jsonpath.jsonpath(respons,"$..regionName") cit=jsonpath.jsonpath(respons,"$..city") ipip=jsonpath.jsonpath(respons,"$..query") print(respons) print(countr+sheng+cit+ipip) Json 定义 JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。 1.json moudle使用

ORACLE字符集基础知识

拥有回忆 提交于 2020-02-16 21:20:30
ORACLE字符集基础知识 https://www.cnblogs.com/kerrycode/p/3749085.html 概念描叙 ORACLE数据库有国家字符集(national character set)与数据库字符集(database character set)之分。两者都是在创建数据库时需要设置的。国家字符集主要是用于NCHAR、NVARCHAR、NCLOB类型的字段数据,而数据库字符集使用很广泛,它用于:CHAR、VARCHAR、CLOB、LONG类型的字段数据; ORACLE的字符集名字一般由以下部分组成:语言或区域、表示一个字符的比特位数、标准字符集名称(可选项,S或C,表示服务器或客户端)。ORACLE字符集UTF8与UTFE不符合此规定,其它基本都是这种格式。NLS_LANG=<Language>_<Territory>.<Clients Characterset> set nls_lang=AMERICAN_AMERICA.UTF8 set nls_lang=SIMPLIFIED CHINESE_AMERICA.UTF8 NLS( National Language Support)国家语言支持。NLS是数据库的一个非常强大的特性,它控制着数据的许多方面:比如数据如何存储,一般来说它控制着以下两个方面: 文本数据持久存储在磁盘上时如何编码

13、文件处理

柔情痞子 提交于 2020-02-16 17:41:39
13.0、说明: 1、文件处理的步骤: (1)打开文件时需要指定文件路劲和以何种方式打开文件,打开后即可获取该文件 句柄; (2)通过句柄对文件进行操作; (3)关闭文件; (4)注意: 1)文件处理的数据内容全部为字符串类型,如果是其它数据类型会报错; 2)对文件的处理以光标所在的位置为起点,启动程序时光标默认从头开始; 3)对文件的修改操作实质是将文件读取(r操作)到内存中,在内存中进行修改,然后再覆盖(w操作)原文件或创建新的文件; 2、打开文件的模式: ( 1)r:只读模式,默认模式,文件必须存在,不存在则抛出异常; (2)w:只写模式,不可读,不存在则创建,存在则清空(类似于linux中写入重定向'>'); (3)x:只写模式,不可读,不存在则创建,存在则报错; (4)a:追加模式,不可读,不存在则创建,存在则只追加内容(类似于Linux中的追加重定向'>>'); (5)注意:默认处理的文本模式(t),比如(rt),如果处理视频图片等其它格式的内容使用"b"来操作; 3、"+"表示可以同时读写某个文件: 说明:该模式是 在原有打开文件模式上新增读或写功能 (1)r+:读写,可读,可写; (2)w+:写读,可读,可写; (3)x+:写读,可读,可写; (4)a+:写读,可读,可写; 4、"b"表示以字节的方式操作: 注意:b模式打开文件时不能指定编码

HTML5 File API

喜你入骨 提交于 2020-02-16 04:41:04
HTML5 引入了一个 File API 用以提供用户上传文件的信息,并允许网页中的 JavaScript 访问其内容。 以下是一些表单 file 控件: <input type="file" accept="video/*;capture=camcorder"> <input type="file" accept="audio/*;capture=microphone"> <input type="file" accept="image/*;capture=camera">直接调用相机(测试安卓可以,iphone还是有相册) <input type="file" accept="image/*" />调用相机 图片或者相册 <input type="file" multiple accept="image/*" />调用相册 1 FileList 对象 FileList 对象针对表单的 file 控件。 当用户通过 file 控件选取文件后,这个控件的 files 属性值就是 FileList 对象。 // 多选控件 <input type='file' multiple /> <script> document.querySelector('input').onchange = function() { console.log(this.files); }; </script>

python3字符串编码转换

人盡茶涼 提交于 2020-02-16 00:07:08
编码转换: 1、将文本已以二进制方式读取出来; 2、将读取的二进制文本已改文本的编码方式进行解码成Unicode 3、然后将解码后的Unicode编码成要转换的编码格式。 例:将utf-8转换成gbk模式 流程图:(例) utf-8------>unicode------>gbk 代码(例) f = open("oldFile.txt", "rb") # 以二进制方式打开 s = f.read() # 读取打开的文本 f.close() s_unicode = s.decode("utf-8") # 转换成Unicode s_gbk = s_unicode.encode("gbk") # Unicode转换成gbk模式 f = open("oldFile.txt", "wb") #以二进制方式创建 f.write(s_gbk) # 写入 f.close() 来源: https://www.cnblogs.com/lanlao/p/12315375.html

javaSE学习笔记(15) ---缓冲流、转换流、序列化流

冷暖自知 提交于 2020-02-15 23:46:31
javaSE学习笔记(15) ---缓冲流、转换流、序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,相当于是对基本流对象的一种增强。 概述 缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流 : BufferedInputStream , BufferedOutputStream 字符缓冲流 : BufferedReader , BufferedWriter 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。 字节缓冲流 构造方法 public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流。 public BufferedOutputStream(OutputStream out) : 创建一个新的缓冲输出流。 构造举例,代码如下: // 创建字节缓冲输入流 BufferedInputStream bis = new BufferedInputStream(new FileInputStream("bis.txt"

深入理解python(三)python字符编码和字符串处理

大城市里の小女人 提交于 2020-02-15 18:47:56
说是有选择和循环分支,,也实在没有什么比较大的坑要注意的,所以就直接进入比较令人困扰的地方 unicode和字符串 这个地方是一直以来我比较头痛的地方,因为坑比较多而且python3和python2在编码和解码方面有着很大的差异,所以我尽量按照自己的理解写一遍,如果有谬误望不吝赐教。 先安利一个资料 https://docs.python.org/2/library/re.html 这里讲解的比较详尽 先来谈谈对编码的理解吧 首先我们要明析两个东西 1.unicode 2.编码方式 这里借一篇文章中的一段话来解释,原文讲的很清晰,建议大家去看一看: https://pycoders-weekly-chinese.readthedocs.io/en/latest/issue5/unipain.html 我们从 Unicode 基本知识开始。 事实之一:计算机中的一切均为 bytes(字节)。硬盘中的文件为一系列的 byte 组成,网络中传输的只有 byte。所有的信息,在你写的程序中进进出出的,均由 byte 组成。 孤立的 byte 是毫无意义的,所以我们来赋予它们含义。 为了表示各种文字,我们有大约 50 年的时间都在用 ASCII 码。每一个 byte 被赋予 95 种符号的一种,所以,当我给你发送 byte 值为 65 的时候,你知道我想表达一个大写的 A。 ISO