horizon86的博客
  • 首页
  • 实用工具
  • 归档
  • 分类
  • 标签
  • 关于

windows grep GBK编码问题

我在Windows上使用grep时发现中文会出错。 比如在cmd里执行echo 测试 | grep 测试,就没有输出,查了查说是要设置环境变量LANG=zh_CN.GBK,我设置了之后确实可以了。但是对于这个环境变量的作用,我一直不很清楚,今天就做点实验来研究一下。 首先要清楚,cmd代码页默认是GBK,代码页分为输入代码页和输出代码页,这俩一般是一样的,可以用命令chcp查看,也可以用win
2021-09-07

c++ 字符串utf-8 通用字符名 用unicode编码表示

通用字符名(UCN) c++11引入了一种新的转义字符——通用字符名(universal character names)。表示就是\uxxxx或者\Uxxxxxxxx,xxxx是一个unicode码点。 12345678#include <iostream>using namespace std;int main(){ const char* a = &quo
2021-09-07
c++

软链接和硬链接

这个说起来挺简单的,但是老忘记,搞混,记录一下。 软链接 软链接又叫符号链接。形式上完全等同于windows的快捷方式。创建一个软链接就是创建一个文本文件,该文件保存了一行字,这行字的内容是一个文件路径。当你把真实文件删了之后,软链接本身还存在,但是指向无效的路径。 那怎么知道这是保存了一行字的普通文件还是一个软链接呢?软链接会设置文件属性为l,也就是link。 linux的文件结构是这样
2021-09-06

java文件生成jar包

创建项目文件夹demo1,demo1结构如下图: image 在Hello.java中编写代码: 1234567package com.priv.djc.learn;public class Hello { public static void main(String[] args) { System.out.println("He
2021-09-05

windows cmd 转义字符和双引号

不得不说,微软的程序写的真是一言难尽,这个cmd的双引号机制也没有一个官方的文档给你讲清楚点。 首先我们知道的是,如果没有引号,cmd是用空格来分割参数的。如果一个参数有空格,就需要用双引号包围起来。 比如: 1parm hello world 就给parm传了两个参数hello和world 1parm "hello world" 用引号包围后,parm就只有一个参数
2021-09-04
windows

windows查看TCP连接

1netstat -ant -p TCP 网上查到都是 1netstat -ant 这样会把UDP也显示出来,很麻烦。-a表示显示所有连接(包括监听状态的),-n表示不要将ip解析为域名,-t表示显示连接的状态。 更多用法可以使用netstat -h来查看。 12345678910111213141516171819202122232425262728293031323334353637
2021-09-04
windows

二叉树中序遍历Joseph M. Morris算法

二叉树中序遍历,一种方法是递归,leetcode上的非递归方法有一种是用栈实现的,想来也没多大优化,手动递归比自动递归也快不了多少。还有一种不用栈的非递归方法,是Joseph M. Morris发明的,这位元老就是KMP算法中的M。 下面代码来自贴吧大神,经测试可用。我还没研究具体是个怎么回事,时间上能达到100% 1234567891011121314151617181920212223v
2021-08-28

c++ 右值引用(&&)和左值引用(&)

左值和右值 首先区分一下什么是左值,什么是右值。 左值就是可以写在赋值号左边的,右值是写在赋值号右边的。 比如 123456Stu foo() { return Stu();}int a = 5; // a是左值Stu s = foo(); // s是左值,foo()的返回值是右值int c = a + b; // a + b 的结果是右值,c是左值 foo()返
2021-08-24
c++

Python学习笔记

本文用于记录Python学习过程中的笔记,因为不常使用python,每次想写py都得先查半天百度,这里记录一下,顺便正经学一学,不然每次想写都费半天劲。 先来一点无关内容,vscode的python插件智能提示很慢的话,把Language Server改成Pylance,不要用Jedi。来源:vscode写python的自动提示功能太慢,如何改善? - 真的很厉害的回答 - 知乎 函数
2021-08-20
python

c++ vector用花括号初始化的原理

c++ vector有个很神奇的初始化方法: 1vector<int> a = {1, 2, 3, 4, 5}; 这种方法让我感到很是惊奇,这是什么操作? 我知道初始化数组是这样写的,但是vector虽然是类似于数组,但是本身是个类,是要用构造函数初始化的,也不是什么原生数据类型啊,花括号初始化是什么操作? 然后,我就去看了看vector的源码,模板给我看的好
2021-08-20
c++
1…14151617

搜索

Hexo Fluid