摘要: 前言 shell 脚本里可用 echo $(( expr )) 方式进行简单计算,而对于复杂计算就无能为力。 而这时 bc (Basic Calculator)命令就可以派上用场,本文就介绍下这个命令的用法。 基础用法 bc 命令通过标准输入、文件或交互式(interactive)方式,获取待计算的 阅读全文
posted @ 2024-01-25 20:30 ZachLim 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 问题排查 最近编写项目中的 properties 文件时,发现文件中存在如下所示的乱码字符: foo.properties # 中文 name=���� 由于笔者 IDEA 设置默认使用 UTF-8 打开 properties 文件,所以很自然地想到是文件编码问题。 > file foo.prope 阅读全文
posted @ 2023-12-26 16:00 ZachLim 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 前言 某些只能使用ASCII字符的场景,往往需要传输非ASCII字符的数据,这时就需要一种编码可以将数据转换成ASCII字符,而base64编码就是其中一种。 编码原理很简单,将原始数据以3字节(24比特)为一组均分成4份,每部分6比特共64种组合,每种组合转换成对应字符,最后拼接起来即可。若最后一 阅读全文
posted @ 2022-07-12 23:58 ZachLim 阅读(1332) 评论(0) 推荐(0) 编辑
摘要: 正确处理二进制数据 正确处理二进制数据必须保证以下三个环节是二进制安全(Binary Safe)的: 从文件读取至内存; 处理数据过程中; 内存写入至文件。 那么二进制安全是什么?通俗来说就是不会特殊处理任何数据,例如说一个文件的字节序列为(十六进制表示)0x0a 0x0d,它读取至内存中也应该是0 阅读全文
posted @ 2022-06-18 16:39 ZachLim 阅读(2489) 评论(0) 推荐(0) 编辑
摘要: 解压后文件名乱码 由于zip格式文件无编码存储的结构,因此解压时无法知道原先的编码。 当解压zip格式文件时使用的编码和原编码不一致时,就可能会出现解压后文件名乱码问题。 猜测编码 基于上述问题,需要对zip格式文件所使用的编码进行猜测。 笔者使用基于统计学原理的 juniversalchardet 阅读全文
posted @ 2021-09-21 00:22 ZachLim 阅读(1380) 评论(0) 推荐(0) 编辑