首页
关于
Search
1
Lua使用调试库hook函数调用
429 阅读
2
傻瓜式快速搭建l2tp
385 阅读
3
游戏邮件系统数据设计因素
327 阅读
4
Linux内核数据结构kfifo小结(TODO)
313 阅读
5
傻瓜式安装chatgpt-web工具
295 阅读
项目技术
项目思考
开发环境
数据库
编程语言
生活与阅读
哲学
登录
Search
标签搜索
nodejs
npm
Typecho
累计撰写
55
篇文章
累计收到
34
条评论
首页
栏目
项目技术
项目思考
开发环境
数据库
编程语言
生活与阅读
哲学
页面
关于
搜索到
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日
38 阅读
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日
42 阅读
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日
295 阅读
5 评论
0 点赞
python协程测试
协程理解的一个重点是,在定义执行的协程对象时,已经初始化了调用上下文,主要是环境变量。
2021年06月28日
27 阅读
0 评论
0 点赞
Python调试工具
好用的几个Python诊断工具:PDB、pystack、pyrasite
2021年06月27日
204 阅读
0 评论
0 点赞
1
2