编码转换

golang json解码编码总结

旧巷老猫 提交于 2020-02-26 15:18:57
已知需要编码解码类型的 1.编码 json.NewEncoder ( < Writer > ) .encode ( v ) json.Marshal ( & v ) 2.解码 json.NewDecoder ( < Reader > ) .decode ( & v ) json.Unmarshal ( [ ] byte, & v ) 使用示例 package main import ( "encoding/json" "fmt" "bytes" "strings" ) type Person struct { Name string ` json: "name" ` Age int ` json: "age" ` } func main ( ) { // 1. 使用 json.Marshal 编码 person1 : = Person { "张三" , 24 } bytes1, err : = json.Marshal ( & person1 ) if err == nil { // 返回的是字节数组 [ ] byte fmt.Println ( "json.Marshal 编码结果: " , string ( bytes1 )) } // 2. 使用 json.Unmarshal 解码 str : = ` { "name" : "李四" , "age" :25 } ` //

FFmpeg从入门到出家(FLV文件结构解析)

我是研究僧i 提交于 2020-02-26 12:29:24
FLV(FLASH VIDEO),是一种常用的文件封装格式,目前国内外大部分视频分享网站都是采用的这种格式。其标准定义为《Adobe Flash Video File Format Specification》。RTMP协议也是基于FLV视频格式的。 FLV的文件格式在该规范中已阐述清楚,本章节不再重复描述,而是结合下面的示例具体阐述如何分析FLV文件。 图3. FLV文件结构示例1 图4. FLV文件结构示例2 FLV文件的分析工具有很多,这里给大家推荐FLV Parser这个小软件,通过它可以很容易的看到文件的组成结构。 3.1 文件结构 从整个文件上看,FLV是由Header和File Body组成,如下图所示: 图5. FLV文件总体结构 1.FLV Header - 长度为9,其结构的标准定义参见标准定义见E.2 The FLV header; FLV File Body - 由一连串的PreviousTagSize + Tag构成。previousTagSize是4个字节的数据,表示前一个tag的size。标准定义参见E.3 The FLV File Body。 以图3. FLV文件结构示例1为例分析整体结构: 1.位置0x00000000 - 0x00000008, 共9个字节,为FLV Header,其中: ◦0x00000000 - 0x00000002 :

one-hot独热编码

岁酱吖の 提交于 2020-02-25 19:56:33
one-hot独热编码 one-hot是常用的处理文本序列数据和离散数据的技术,在机器学习中,对数据进行预处理时很常用的方法。 什么是one-hot One-hot code, 直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。 因为机器并不能识别文本数据的意义,此时我们要将其转换成机器能懂的数字,此时就需要用到one-hot 应用场景 处理文本序列数据和离散数据: 文本序列数据: 假如 词库 中有句子:“我和机器学习”,“我爱祖国” 我们对词库建立一个 词典 {“我”:0,“和”:1,“机器学习”:2,“爱”:3,“祖国”:4} 对于“我爱祖国”一句进行one-hot编码后将会变成一个 维度为**5(即字典的长度)**的向量: [1 0 0 1 1] 离散数据: 以下举个实际例子 实际例子 在三个样本数据sample中,特征feature为city,机器学习算法喜欢和数字打交道,所以让我们把这些文本标签转换为数字。 city sample1 广州 sample2 北京 sample3 上海 我们会将征映射到字典{‘广州’:0,‘北京’:1,上海:2} city sample1 0 sample2 1 sample3 2 然后再使用one-hot编码 广州 北京 上海 sample1 1 0 0 sample2 0 1 0 sample3 0 0 1

从结构到性能,一文概述XGBoost、Light GBM和CatBoost的同与不同

ⅰ亾dé卋堺 提交于 2020-02-25 15:48:18
尽管近年来神经网络复兴并大为流行,但是 boosting 算法在训练样本量有限、所需训练时间较短、缺乏调参知识等场景依然有其不可或缺的优势。本文从算法结构差异、每个算法的分类变量时的处理、算法在数据集上的实现等多个方面对 3 种代表性的 boosting 算法 CatBoost、Light GBM 和 XGBoost 进行了对比;虽然本文结论依据于特定的数据集,但通常情况下,XGBoost 都比另外两个算法慢。 最近,我参加了 kaggle 竞赛 WIDS Datathon,并通过使用多种 boosting 算法,最终排名前十。从那时开始,我就对这些算法的内在工作原理非常好奇,包括调参及其优劣势,所以有了这篇文章。尽管最近几年神经网络复兴,并变得流行起来,但我还是更加关注 boosting 算法,因为在训练样本量有限、所需训练时间较短、缺乏调参知识的场景中,它们依然拥有绝对优势。 2014 年 3 月,XGBOOST 最早作为研究项目,由陈天奇提出2017 年 1 月,微软发布首个稳定版 LightGBM2017 年 4 月,俄罗斯顶尖技术公司 Yandex 开源 CatBoost 由于 XGBoost(通常被称为 GBM 杀手)已经在机器学习领域出现了很久,如今有非常多详细论述它的文章,所以本文将重点讨论 CatBoost 和 LGBM,在下文我们将谈到:

数据库连接字符编码问题

送分小仙女□ 提交于 2020-02-25 10:46:18
查看数据表字符编码命令 show create table table_name; show create table student; +---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Python字符编码

人盡茶涼 提交于 2020-02-25 04:32:45
在用python编程中,字符串有两种表示方法"string"和 u"string"。 为什么字符串要是用这两种表达方式。不是仅仅用前一种呢? 使用type()函数查看,它们各自是str对象和unicode对象。这两个对象有什么差别吗?还有经经常使用到的encode()和decode()又是干什么的呢?都说python脚本使用的是两字节编码,这又是指什么呢? 要回答上面几个问题,首先得弄清楚关于编码的几个概念: Character Set :字符集,是我们人能够识别的字符。 如ASCII规定了127个用一个字节能够表示的字符集。包含英文字母、数字、符号和一些控制字符。当然ASCII定义的字符集比較小。 python中的Character Set基本包含眼下世界上全部是用的字符。如中文、英文、日文字符等等。所以基本上全部的字符都可在Python 中进行处理。 Code Point :计算机是不能直接识别字符的(由于它仅仅能直接识别二进制码),所以为了能让计算机处理和存储字符,须要将字符映射成一个数值(由于数值能够用二进制表达,计算机从而就能够识别了),这个数值叫作字符的code point。字符与其code point是一对一映射,Unicode非常好的规定了这样的映射关系。 Encode :unicode尽管规定了每一个字符的Code Point

关于python出现中文乱码的问题

北慕城南 提交于 2020-02-24 20:24:43
在unicode中,无论是半角的英文字母,还是全角的汉字,它们都是统一的”一个字符“!同时,也都是统一的”两个字节“,请注意”字符”和”字节”两个术语的不同,“字节”是一个8位的物理存贮单元,而“字符”则是一个文化相关的符号 UTF-8就是每次8个位传输数据,而 UTF-16 就是每次16个位。UTF-8就是在互联网上使用最广的一种 unicode 的实现方式,这是为传输而设计的编码,并使编码无国界,这样就可以显示全世界上所有文化的字符了。 文件存储为utf-8格式,编码声明为utf-8,# encoding:utf-8 出现汉字的地方前面加 u 不同编码之间不能直接转换,要经过unicode中间跳转 cmd 下不支持utf-8编码 raw_input提示字符串只能为gbk编码 转自 (https://blog.csdn.net/joyfixing/article/details/79971667) 来源: CSDN 作者: 树叶蓁蓁 链接: https://blog.csdn.net/weixin_43856544/article/details/104481544

音视频编码技术与格式大全

拥有回忆 提交于 2020-02-24 09:47:54
一、常见视频格式中采用的技术   当PC开始拥有FPU(浮点处理器)后,PC如何处理多媒体信息的问题也被摆上台面。无数专家开始为音频视频编码技术运用在PC上开始忙碌了,视频技术也因此得到了飞快的进步。   1、无声时代的FLC   FLC、FLI是Autodesk开发的一种视频格式,仅仅支持256色,但支持色彩抖动技术,因此在很多情况下很真彩视频区别不是很大,不支持音频信号,现在看来这种格式已经毫无用处,但在没有真彩显卡没有声卡的DOS时代确实是最好的也是唯一的选择。最重要的是,Autodesk的全系列的动画制作软件都提供了对这种格式的支持,包括著名的3D Studio X,因此这种格式代表了一个时代的视频编码水平。直到今日,仍旧有不少视频编辑软件可以读取和生成这种格式。但毕竟廉颇老矣,这种格式已经被无情的淘汰。   2、载歌载舞的AVI   AVI--Audio Video Interleave,即音频视频交叉存取格式。1992年初Microsoft公司推出了AVI技术及其应用软件VFW(Video for Windows)。在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。这种按交替方式组织音频和视像数据的方式可使得读取视频数据流时能更有效地从存储媒介得到连续的信息。构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等。AVI文件用的是AVI

PHP的学习--PHP加密

和自甴很熟 提交于 2020-02-24 04:15:32
PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串。 raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。 这是一种不可逆加密,执行如下的代码 $password = '123456'; echo md5($password); 得到结果是e10adc3949ba59abbe56e057f20f883e 2. Crype加密 string crypt ( string $str [, string $salt ] ) crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。 参数 str -- 待散列的字符串。 salt -- 可选的盐值字符串。如果没有提供,算法行为将由不同的算法实现决定,并可能导致不可预料的结束。 这是也一种不可逆加密,执行如下的代码 $password = '123456'; $salt = "test";// 只取前两个 echo crypt($password, $salt); 得到的结果是teMGKvBPcptKo 使用自动盐值的例子如下: $password = crypt(

Java中文乱码原因

∥☆過路亽.° 提交于 2020-02-23 15:17:20
Java中文乱码原因 Java在中文环境中乱码无处不在,而且出现的时间和位置也包涵广泛,具体的解决方法也是千奇百怪。 但是如果能理清其中的脉络,理解字符处 理的过程,对于解决问题很有指导意义,不至于解决了问题也不知道为什么。 其实,原因不外乎出在String输入时和输出时。 首先,Java中的任何String都是以UNICODE格式存在的。 很多人因为在GBK环境中使用String,会误以为String是GBK格式,实际上Java的String类中并没有存储CharSet信息的字段, 所有String中的字符只会以UNICODE的2字节形式存在。 String在构造时会逐一把字符按指定编码(默认值为系统编码GBK),转换为UNICODE字符,存入一个Char(无符号16位)数组中。 如: new String(bytes,"gbk"); 并不是说,生成一个GBK编码的字符串,而是按GBK逐一辨认字节数组bytes中的字符转化为UNICODE。 假设,bytes本是按GB编码的,构造方法在发现一个最高位为0的byte就作为ascii字符处理,最高位为1就和后面的一个byte合成中文字符, 再转换编码。 可以看出,在这个过程中,编码选择错误就会导致程序按错误方法辨认bytes,乱码就出现了。 在这里产生的乱码,很多时候还可以通过.getByte()方法修复,还没有后面的严重。 如: