笔记

rust语言字符串笔记

每种语言都免不了和字符串打交道,rust也不例外。由于rust本身的一些特性,字符串的使用和其他语言有很大的不同。

ubuntu18.4 打开文件中文乱码问题解决

本次记录针对ubuntu英文版,打开带有中文字符的文件是,显示乱码问题。不是给ubuntu系统切换到中文版。切换系统语言参考https://blog.csdn.net/qq_36588424/article/details/109617096

检查语言环境

出现乱码的原因其实是字符集问题。首先使用locale查看当前语言环境。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# locale
LANG=en_US
LANGUAGE=
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=

ubuntu18.04编译安装php7.0

起因

虽然7.0已经停止维护了,但有些老项目也只是过度,后期直接用新项目替换,没有必要在进行升级。所以服务器还是需要用到7.0的运行环境。
本来想用apt简单按一下,结果发现apt里面已经没有php7.0了。只能自己源码安装。

VirtualBox网络模式说明

网络模式

VirtualBox的提供了四种网络接入模式,它们分别是:
1、NAT 网络地址转换模式(NAT,Network Address Translation)
2、Bridged Adapter 桥接模式
3、Internal 内部网络模式
4、Host-only Adapter 主机模式

超好用的抓包工具mitmproxy

mitmproxy是一个非常好用的代理工具

安装

最快速的安装莫过于执行

1
2
sudo apt install mitmproxy

由于mitmproxy是基于python开发的,所以安装mitmproxy的同时,也会自动安装上python3。

如果本地已经有了python3.6以上的版本,可以用pip进行安装

1
pip install mitmproxy

记录一次postgresql迁移经历

数据库服务器硬盘满了,需要将数据迁移到另一台数据库,做一下记录

安装

去postgresql官网https://www.postgresql.org/download/,选择操作系统,我这里选择的是ubuntu。
然后根据说明进行安装

1
2
3
4
5
6
7
8
9
10
11
12
# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Update the package lists:
sudo apt-get update

# Install the latest version of PostgreSQL.
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
sudo apt-get -y install postgresql

值得注意的是,安装时一定要选择与老数据库相同的版本

安装完成后,就可以会自动添加一个postgres的系统用户,该用户没有密码如果想要密码可以自行设置

微信开发unionid详解

unionid概况

微信开发过程中,经常会遇到,一个企业有多个小程序和公众号,在不同的小程序和公众号中,会有不同的openid。如果想要确定是同一个人,就需要用到unionid机制。

官方关于unionid的说明是这样的

公众号文档的描述

开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

小程序文档的描述

如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。