码表

base64原理

谁说我不能喝 提交于 2020-03-12 11:32:51
一、 base64是什么? 按照 RFC2045 的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.) 使用的字符包括大小写字母各26个,加上10个数字,和加号“+”,斜杠“/”,一共64个字符,等号“=”用来作为后缀用途。 二、 base64的作用及用途 作用: 实现简单的数据加密,使用户一眼望去完全看不出真实数据内容,base64算法的复杂程度要小,效率要高相对较高。 某些系统或应用,只能使用ASCII字符,例如Email,需使用base64对数据进行编码。 用途: 在MIME中,base64可以用来将binary的字节序列数据编码成ASCII字符序列构成的文本。在Email的传送过程中,由于历史原因,Email只被允许传送ASCII字符,即一个8位字节的低7位(0-127)。因此,如果用户发送了一封带有非ASCII字符(即字节的最高位是1)的Email通过有“历史问题”的网关时就可能会出现问题。网关可能会把最高位置为0。这个时候,问题出现了

java021.io流 字符流

谁都会走 提交于 2020-03-01 09:56:58
注意: 字节流可以操作任意数据,但是字符流只能操作纯文本文件,一般用于文本文件的只读或只写! 字符流是什么 * 字符流是可以直接读写字符的IO流 * 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出. FileReader类的read()方法可以按照字符大小读取 FileWriter类的write()方法可以自动把字符转为字节写出 字符流用处和特点: * 字符流也可以拷贝文本文件, 但不推荐使用. 因为读取时会把字节转为字符, 写出时还要把字符转回字节. * 程序需要读取一段文本, 或者需要写出一段文本的时候可以使用字符流 * 读取的时候是按照字符的大小读取的,不会出现半个中文 * 写出的时候可以直接将字符串写出,不用转换为字节数组 字符流不可以拷贝非纯文本的文件,因为在读的时候会将字节转换为字符,在转换过程中,可能找不到对应的字符,就会用?代替,写出的时候会将字符转换成字节写出去,如果是?,直接写出,这样写出之后的文件就乱了,看不了了 * BufferedReader的read()方法读取字符时会一次读取若干字符到缓冲区, 然后逐个返回给程序, 降低读取文件的次数, 提高效率 * BufferedWriter的write()方法写出字符时会先写到缓冲区, 缓冲区写满时才会写到文件, 降低写文件的次数, 提高效率 *

聊聊基于数据库的策略模式

孤人 提交于 2020-02-28 13:36:35
策略模式概述: 在我看来最主要的是使用策略的代码是固定的,但策略是可以自由选择的。这就使得对策略的选择和使用进行了解耦。 策略模式: https://blog.csdn.net/weixin_37968613/article/details/103068487 基于数据库进行对策略进行选择: 举个例子: 我们现在有一个场景,业务中需要用到很多配置码表信息(上百张配置表),诸如:goodsCode,商品名称goodsName,大部分配置表都是code,name的形式,但也会有bussinessId,XXId等其他更多字段。在这种情况下,如果我们要自由获取到每张配置表的信息,我们会怎么做? 为每一张写一个查询吗?显然是太难以扩展了,那样增加删除配置表都需要修改代码。 这里有一种思路,采用一张 全局配置表 存储着 每张配置表 的信息,如码表类型Type,表名,code字段名称(goodsCode),name字段名称(goodsName)等, 首先根据我们要查的码表类型codeType,到全局配置表查出我们要查的表名,字段名称,采用策略等 ,然后 再去相应码表查出我们需要的值 。 一般的码表我们采用默认策略,另外针对一些特殊的,字段很多或不规则的码表,我们可以自己再实现一套策略去解决。 全局配置表中的策略字段, 可以存策略具体实现类(ConcreteStrategy)的Id

java面向对象之IO篇(1)IO-字符编码

扶醉桌前 提交于 2020-02-26 09:00:08
​​​​​ IO-字符编码 今天我们将进入新篇章< java面向对象之IO篇 >,希望能让你有所收获,抓紧继续学习吧!!! 一. 计算机中如何保存数据 保存的都是二进制数据0101,称为: 字节 (人看不懂,计算机能看懂) 查看的文本、标点,称为: 字符 (人能看懂,但计算机看不懂) 当向计算机存储字符时,会将 字符 变成 字节 保存。这个过程称为 编码 当我们需要展示字符时:会将 字节 变成 字符 展示 。 这个过程称为 解码 字符和字节之间的转换不是毫无规律的,是有专门的字典来一一对应。这样的字典我们成为 码表 UTF-8 :汉字3 个字节 二. Java中字符如何编码和解码 Java中,编码解码全自动的。 举例使用: 三. String类的编码和解码 String 编码 方法名 方法描述 getBytes( String encoding ) 将字符串以指定码表,编码为字节数组。 即字符变字节(数字) 参数:码表名 ”utf-8” 或 ”gbk” 返回: byte[] 举例使用: String 解码 方法名 方法描述 String( byte[],String encoding ) 将字节数组以指定码表,解码为字符串 即字节(数字)变字符 参数: 1 、字节数组 2、码表名 ”utf-8” 或 ”gbk” 返回: String 举例使用: 四.​​​​​​​ 乱码问题

ascii码表

≯℡__Kan透↙ 提交于 2020-01-29 18:06:21
ascii码 (十进制) ascii码 (十六进制) 字符 ascii码 ascii码 字符 ascii码 ascii码 字符 ascii码 ascii码 字符 0 00 NUL (空) 32 20 (空格) 64 40 @ 96 60 ` 1 01 SOH (标题开始) 33 21 ! 65 41 A 97 61 a 2 02 STX (正文开始) 34 22 " 66 42 B 98 62 b 3 03 ETX (正文结束) 35 23 # 67 43 C 99 63 c 4 04 EOT (传送结束) 36 24 $ 68 44 D 100 64 d 5 05 ENQ (询问) 37 25 % 69 45 E 101 65 e 6 06 ACK (确认) 38 26 & 70 46 F 102 66 f 7 07 BEL (响铃) 39 27 ' 71 47 G 103 67 g 8 08 BS (退格) 40 28 ( 72 48 H 104 68 h 9 09 HT (横向制表) 41 29 ) 73 49 I 105 69 i 10 0a LF (换行) 42 2a * 74 4a J 106 6a j 11 0b VT (纵向制表) 43 2b + 75 4b K 107 6b k 12 0c FF (换页) 44 2c , 76 4c L 108 6c l 13

使用指定的码表读写字符

时光总嘲笑我的痴心妄想 提交于 2020-01-27 15:49:51
使用指定的码表读写字符 FileReader是使用默认码表读取文件, 如果需要使用指定码表读取, 那么可以使用InputStreamReader(字节流,编码表) FileWriter是使用默认码表写出文件, 如果需要使用指定码表写出, 那么可以使用OutputStreamWriter(字节流,编码表) BufferedReader br = //高效的用指定的编码表读 new BufferedReader(new InputStreamReader(new FileInputStream("UTF-8.txt"), "UTF-8")); BufferedWriter bw = //高效的用指定的编码表写 new BufferedWriter(new OutputStreamWriter(new FileOutputStream("GBK.txt"), "GBK")); int ch; while((ch = br.read()) != -1) { bw.write(ch); } br.close(); bw.close(); package com.heima.chario; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import

iconfont技术分享

主宰稳场 提交于 2020-01-27 13:04:46
提问 提需求的人图标样式(颜色)要换? 图标如何满足不同的分辨率以及清晰度? 图标太多导致项目体积越来越大,如何瘦身? 按钮状态切换只用一个图标,例如点击和松开,甚至更多的状态? 用字体来代替图标 阿里iconfont 轻量性:一个图标字体比一系列的图像(特别是在Retina屏中使用双倍图像)要小。一旦图标字体加载了,图标就会马上渲染出来,不需要下载一个图像。可以减少HTTP请求,还可以配合HTML5离线存储做性能优化。 灵活性:图标字体可以用过font-size属性设置其任何大小,还可以加各种文字效果,包括颜色、Hover状态、透明度、阴影和翻转等效果。可以在任何背景下显示。使用位图的话,必须得为每个不同大小和不同效果的图像输出一个不同文件。 跨平台:支持android,iOS,web,微信小程序。 兼容性:网页字体支持所有现代浏览器,包括IE低版本。 iconfont 制作的基本原理 Unicode 码表是一个很大的表格,每个表格都对应一个 Unicode 字符,每个字符都有一个 Unicode 码值对应,如 “李” 对应 “\u674e”, “靖” 对应 “\u9756”。因为码表很大,有部分表格并没有对应的字符,但是它有自己的码值。iconfont 的制作,首先将绘制的图形(可以是一张图片、也可以是一个 svg 描述)通过工具或者程序生成文字icon

JAVAWEB中乱码问题

早过忘川 提交于 2019-12-20 07:37:37
JavaWeb开发中乱码问题处理 其实,任何问题都是有理可循的,只要弄明白原理,由原理入手设计解决方案,很多问题也就迎刃而解了。在程序设计中,我们不仅要明白怎么做,更要知道为什么这么做,这才是提升能力的必经之路。 下面,我们来分析一下Javaweb开发中常见的乱码产生的原因及其解决方案。 响应乱码原理 服务器发送数据到浏览器,有字符和字节两种方式,这两种方式产生乱码的原理各不相同。 字节方式输出数据: response.getOutputStream( ).write("中国".getBytes("utf-8")); 发现结果为: 结果显示产生了乱码,那么这个问题是如何产生的呢? 乱码问题,大部分都是由于编码和解码码表不同产生的,服务器在发送中文数据时,使用的是UTF-8码表,那么浏览器是用什么码表解析的呢?IE浏览器在没有特别指定码表时,将使用所在操作系统的默认码表,utf-8的数据发送给浏览器后,浏览器用gbk2312打开自然就出现了乱码问题。 那么如何解决这种乱码呢?在HTTP协议中提供了Content-Type响应头,我们可以通过这个头通知浏览器发送的数据是什么格式,如果是文本数据还可以通过charset属性通知浏览器用什么编码打开,因此我们只要做如下设置即可解决乱码: response.setHeader("content-type", "text/html

安卓手机键码表

纵饮孤独 提交于 2019-12-16 01:07:29
键英文名 键中文名 键代码 键类型 KEYCODE_CALL 拨号键 5 电话键 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOME 按键Home 3 KEYCODE_MENU 菜单键 82 KEYCODE_BACK 返回键 4 KEYCODE_SEARCH 搜索键 84 KEYCODE_CAMERA 拍照键 27 KEYCODE_FOCUS 拍照对焦键 80 KEYCODE_POWER 电源键 26 KEYCODE_NOTIFICATION 通知键 83 KEYCODE_MUTE 话筒静音键 91 KEYCODE_VOLUME_MUTE 扬声器静音键 164 KEYCODE_VOLUME_UP 音量增加键 24 KEYCODE_VOLUME_DOWN 音量减小键 25 KEYCODE_ENTER 回车键 66 控制键 KEYCODE_ESCAPE ESC键 111 KEYCODE_DPAD_CENTER 导航键 确定键 23 KEYCODE_DPAD_UP 导航键 向上 19 KEYCODE_DPAD_DOWN 导航键 向下 20 KEYCODE_DPAD_LEFT 导航键 向左 21 KEYCODE_DPAD_RIGHT 导航键 向右 22 KEYCODE_MOVE_HOME 光标移动到开始键 122 KEYCODE_MOVE_END 光标移动到末尾键 123