首页
关于
Search
1
Lua使用调试库hook函数调用
333 阅读
2
傻瓜式快速搭建l2tp
328 阅读
3
Linux内核数据结构kfifo小结(TODO)
269 阅读
4
傻瓜式安装chatgpt-web工具
256 阅读
5
游戏邮件系统数据设计因素
242 阅读
项目技术
项目思考
开发环境
数据库
编程语言
生活与阅读
哲学
登录
Search
标签搜索
nodejs
npm
韭菜笔记
累计撰写
55
篇文章
累计收到
0
条评论
首页
栏目
项目技术
项目思考
开发环境
数据库
编程语言
生活与阅读
哲学
页面
关于
搜索到
8
篇与
的结果
文件bom头
有关于BOM,是Windows程序处理文本是常用,但linux不常用。BOM 是 byte-order mark 的缩写,是 "字节序标记" 的意思, 它常被用来当做标识文件是以 UTF-8、UTF-16 或 UTF-32编码的标记。在 Unicode 编码中有一个叫做 "零宽度非换行空格" 的字符 ( ZERO WIDTH NO-BREAK SPACE ), 用字符 FEFF 来表示对于 UTF-16 ,如果接收到以 FEFF 开头的字节流, 就表明是大端字节序,如果接收到 FFFE, 就表明字节流 是小端字节序UTF-8 没有字节序问题,上述字符只是用来标识它是 UTF-8 文件,而不是用来说明字节顺序的。"零宽度非换行空格" 字符 的 UTF-8 编码是 EF BB BF, 所以如果接收到以 EF BB BF 开头的字节流,就知道这是UTF-8 文件关于文件16进制查看方法,在linux下可以用hexdump $path_to_file命令查,windows下也可以用vim打开后,使用%!xxd 命令,本质上是调用了xxd程序进行转化。windows下也可以用vs code插件,需要安装Hex Editor插件,然后在vscode打开对应文件名页签处右键调用客户端js代码下载函数如下,关键的是在数据前面增加了 FFFE 前缀,浏览器下载后会变更EF BB BF 开头。export function downloadExportUtf8Csv(url, fileName) { request({url: url, method: 'get'}).then(response => { let data = "\ufeff" + response.data let blob = new Blob([data], {type:'text/csv,charset=UTF-8'}) let url = window.URL.createObjectURL(blob) let a = document.createElement("a") a.href = url a.download = fileName a.click() window.URL.revokeObjectURL(url) a.remove() }) }后续在node_module中的客户端库,FileSaver中也有自动转码。auto_bom = function(blob) { // prepend BOM for UTF-8 XML and text/* types (including HTML) // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) { return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type}); } return blob; } FileSaver = function(blob, name, no_auto_bom) { if (!no_auto_bom) { blob = auto_bom(blob); } // ... }
2024年03月27日
25 阅读
0 评论
0 点赞
Ubuntu16下vim工具编译
lua5.4安装下载源码包后make && make install在ubuntu16上安装vim9简要说明在安装支持特性时, 如果发现传递了, 但是安装后没有集成, 就需要自己看./configure步骤的输出信息后手动解决git clone https://github.com/vim/vim.git # 安装python开发包,用于扩展vim的python支持(因为我使用了LeaderF插件) # sudo apt install python3-dev # 查看python开发包安装目录, 如果已经安装 dpkg -L python3-dev # 更方便的是这个, 这里使用/usr/bin/python3m-config 不是/usr/bin/python3-config python3-config --configdir # 假设安装的开发文件位置/usr/local/include # 则传递/usr/local给--with-lua-prefix就可以了 # 所有的这些开启特性支持参数, 只是尝试, 最后是不一定会支持(假设找不到对应开发库) ./configure --with-features=huge \ --enable-multibyte \ --enable-rubyinterp=yes \ --enable-python3interp=yes \ --with-python3-config-dir=/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu \ --enable-perlinterp=yes \ --enable-luainterp=yes \ --with-lua-prefix=/usr/local/include \ --enable-cscope --prefix=/usr/local # 检查支持情况 ./src/vim --version|egrep 'python|lua|cscope' sudo make install如果在安装后, 使用leader遇到ImportError: /usr/local/lib/python3.10/lib-dynload/_struct.cpython-310-x86_64-linux-gnu.so: undefined symbol: PyByteArray_Type可以参考 https://github.com/vim/vim/issues/3629把命令调整如下:LDFLAGS="-rdynamic" ./configure --with-features=huge \ --enable-multibyte \ --enable-rubyinterp=yes \ --enable-python3interp=yes \ --with-python3-config-dir=/usr/local/lib/python3.10/config-3.10-x86_64-linux-gnu \ --enable-perlinterp=yes \ --enable-luainterp=yes \ --with-lua-prefix=/usr/local \ --enable-cscope --prefix=/usr/local安装vim-lua语法git clone https://github.com/tbastos/vim-lua.git cp vim-lua/indent/lua.vim ~/.vim/autoload/ cp vim-lua/syntax/lua.vim ~/.vim/syntax/lua.vim安装vim-tagbar这个插件是个taglist的替换品,有人维护. 主要用来取文件中的函数名等(依赖ctags)git clone https://github.com/preservim/tagbar.git cd tagbar cp syntax/tagbar.vim ~/.vim/syntax/ cp plugin/tagbar.vim ~/.vim/plugin/ cp autoload/tagbar.vim ~/.vim/autoload/ cp autoload/tagbar ~/.vim/autoload/ -r cp doc/tagbar.txt ~/.vim/doc/安装后下面是状态栏配置:" 我的状态行显示的内容(包括文件类型和解码) "set statusline=%F%m%r%h%w[%p%%]%{exists('*Tlist_Get_Tagname_By_Line')?Tlist_Get_Tagname_By_Line():''} " 显示当前路径 set statusline=%F%m%r%h%w " 显示行列和百分比 set statusline+=[%l,%c,%p%%] " 显示函数名 set statusline+=%{exists(':TagbarToggle')?tagbar#currenttag('%s',''):''}
2023年07月15日
34 阅读
0 评论
0 点赞
傻瓜式安装chatgpt-web工具
傻瓜式安装chatgpt-web工具, 方便快速访问前提:有chatgpt账号, 并申请了api key (https://platform.openai.com/account/api-keys)有一台美国服务器(比如ubuntu)绑定银行卡 https://platform.openai.com/account/billing/overview步骤:安装dockercurl -fsSL https://test.docker.com -o test-docker.sh sudo sh test-docker.sh安装docker-composewget https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-linux-x86_64 chmod u+x docker-compose-linux-x86_64 mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose下载最新开源镜像docker pull chenzhaoyu94/chatgpt-web配置docker-compose.ymlversion: '3' services: app: image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可 ports: - ${your_port}:${your_port} environment: # 二选一 OPENAI_API_KEY: ${you api key xxxxxxxxxx}运行docker-compose up -d ### Note: 虚拟信用卡建议使用vvacard或者nobepay, 特别不建议操作不友好的depay 卡段号建议先百度, 实测556766可用 地址来自租房网站www.zillow.com随便搜索的免税州Oregon
2023年05月11日
256 阅读
0 评论
0 点赞
python协程测试
协程理解的一个重点是,在定义执行的协程对象时,已经初始化了调用上下文,主要是环境变量。
2021年06月28日
19 阅读
0 评论
0 点赞
Python调试工具
好用的几个Python诊断工具:PDB、pystack、pyrasite
2021年06月27日
172 阅读
0 评论
0 点赞
1
2