解决 “warning C4819- 该文件包含不能在当前代码页(936)中表示的字符” 问题指南

起因是因为我在对我的 C++ 项目进行跨平台适配,从 macOS 平台移植到 Windows 平台时,在使用 Cmake + MSVC 编译后,出现了这个问题。 问题原因这是由于 Windows 平台默认使用的是 GBK 编码,而 macOS 平台上使用的是 UTF-8 编码。 解决方法方法一在 CMakeLists.txt 文件中添加如下代码: add_compile_options("$<$<C_COMPILER_ID:MSVC>:/source-charset:utf-8>") 方法二在 CMakeLists.txt 文件中添加如下代码: if(MSVC) target_compile_options(<你的项目名> PRIVATE "/utf-8") endif()

2024年06月16日 · 1 分钟 · Cassius0924

HammerSpoon 入门指南

介绍HammerSpoon 这是一款强大的OS X自动化工具。 HammerSpoon 本质上就是操作系统和Lua脚本引擎之间的桥梁。 HammerSpoon 之所以强大,在于它提供了一系列向用户公开特定系统功能模块的扩展。有了这些扩展,用户便可利用Lua脚本来控制 macOS 的各个方面。 安装建议直接使用 Homebrew 安装。 brew install hammerspoon --cask 手动安装参考官方 Github。 参考文档 HammerSpoon 入门指南 HammerSpoon API 文档 HammerSpoon 常见问题 HammerSpoon 配置示例 快速开始启动应用安装完毕后启动 HammerSpoon,设置中打开辅助功能。 接着点击 Open Config 打开配置文件。下面开始教程。 Hello World-- Hello World hs.hotkey.bind({"cmd", "alt", "shift", "ctrl"}, "W", function() hs.alert.show("HammerSpoon is working!") end) 每次修改配置文件后都需要点击 Reload Config。 以上代码实现了点击快捷键 command + option + shift + control + w,在屏幕中间显示弹窗提示的功能。 也可以使用 macOS 原生通知形式 -- Hello World(macOS native notification) hs.hotkey.bind({"cmd", "alt", "shift", "ctrl"}, "Q", function() hs.notify.new({title="macOS Native Notification", informativeText="HammerSpoon is working"}):send() end) ...

2024年06月16日 · 1 分钟 · Cassius0924

iTerm2 配置失去焦点时保持命令行窗口指南

配置步骤按下 cmd + , 打开 iTerm2 设置,选择 Profiles 面板,切换到 Keys 选项卡,点击 Configure Hotkey Windows。 打勾 Pin hotkey window 选项。 大功告成,配置完后鼠标在点击 iTerm2 命令行窗口以外的界面时,命令行窗口就不会自动隐藏了。

2024年06月16日 · 1 分钟 · Cassius0924

macOS ClashX Pro 配置指南

mixed-port: 7890 # Linux 和 macOS 的 redir 代理端口 redir-port: 7892 # 允许局域网的连接 allow-lan: true # 规则模式:Rule(规则) / Global(全局代理)/ Direct(全局直连) mode: rule # 设置日志输出级别 (默认级别:silent,即不输出任何内容,以避免因日志内容过大而导致程序内存溢出)。 # 5 个级别:silent / info / warning / error / debug。级别越高日志输出量越大,越倾向于调试,若需要请自行开启。 log-level: info # Clash 的 RESTful API external-controller: '0.0.0.0:9090' # RESTful API 的口令 secret: '' dns: enable: true ipv6: true listen: '0.0.0.0:53' use-hosts: true enhanced-mode: fake-ip fake-ip-range: 198.18.0.1/16 nameserver: - 202.120.224.6 - 114.114.114.114 - 223.5.5.5 - 'tcp://223.5.5.5' fallback: - 'tls://223.5.5.5:853' - 'https://223.5.5.5/dns-query' fallback-filter: geoip: true ipcidr: - 240.0.0.0/4 # proxy provider start here proxy-providers: feiniao: type: http path: ./profiles/feiniao.yaml url: https://apiv1.v27qae.com/flydsubal/c8lr21z6wpiebqqx?clash=1&extend=1 interval: 36000 health-check: enable: true url: http://www.gstatic.com/generate_204 interval: 3600 yiyuan: type: http path: ./profiles/yiyuan.yaml url: https://sub1.smallstrawberry.com/api/v1/client/subscribe?token=d6e73f953b6053a3b263b73f9509375d decode-url: true interval: 36000 health-check: enable: true url: http://www.gstatic.com/generate_204 interval: 3600 # proxy provider end proxies: # socks5 - name: windowsServer type: socks5 server: 10.127.78.177 port: 7890 # username: username # password: password # tls: true # skip-cert-verify: true # udp: true # - {name: 🇮🇪 中国-爱尔兰 IPLC C04, server: ir04.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB} # - {name: 🇭🇰 香港 油尖旺御金·国峯 名氣通電訊 C02, server: hkhe02.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB} # - {name: 🇮🇪 中国-爱尔兰 IPLC C03, server: ir03.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB} # - {name: 🇭🇰 香港 油尖旺御金·国峯 名氣通電訊 C09, server: hkhe09.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB} # - {name: 🇨🇳 中国-香港 IEPL Equinix HK8 C 02 1Gbps HBO TVB, server: sg12.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB, udp: true} # - {name: 🇨🇳 中国-爱尔兰 IPLC C05, server: ir05.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB, udp: true} # - {name: 🇨🇳 中国-香港 IPLC Equinix HK2 C 06 1Gbps HBO TVB, server: sg06.cathayroute.com, port: 33400, type: ss, cipher: rc4-md5, password: SRCFiB, udp: true} proxy-groups: - name: Proxies type: select proxies: - 机场节点 - 自动选择 - 故障转移 # - name: 手动节点 # type: select # proxies: # - 🇮🇪 中国-爱尔兰 IPLC C04 # - 🇭🇰 香港 油尖旺御金·国峯 名氣通電訊 C02 # - 🇮🇪 中国-爱尔兰 IPLC C03 # - 🇭🇰 香港 油尖旺御金·国峯 名氣通電訊 C09 # - 🇨🇳 中国-香港 IEPL Equinix HK8 C 02 1Gbps HBO TVB # - 🇨🇳 中国-爱尔兰 IPLC C05 # - 🇨🇳 中国-香港 IPLC Equinix HK2 C 06 1Gbps HBO TVB - name: feiniao type: select use: - feiniao - name: yiyuan type: select use: - yiyuan - name: 机场节点 type: select proxies: - feiniao - yiyuan - name: 故障转移 type: fallback url: 'http://www.gstatic.com/generate_204' interval: 7200 proxies: - feiniao - yiyuan - name: 自动选择 type: url-test url: 'http://www.gstatic.com/generate_204' interval: 300 use: - feiniao - yiyuan rule-providers: reject: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt" path: ./ruleset/reject.yaml interval: 86400 icloud: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt" path: ./ruleset/icloud.yaml interval: 86400 apple: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt" path: ./ruleset/apple.yaml interval: 86400 google: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt" path: ./ruleset/google.yaml interval: 86400 proxy: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt" path: ./ruleset/proxy.yaml interval: 86400 direct: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt" path: ./ruleset/direct.yaml interval: 86400 private: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt" path: ./ruleset/private.yaml interval: 86400 gfw: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt" path: ./ruleset/gfw.yaml interval: 86400 tld-not-cn: type: http behavior: domain url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt" path: ./ruleset/tld-not-cn.yaml interval: 86400 telegramcidr: type: http behavior: ipcidr url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt" path: ./ruleset/telegramcidr.yaml interval: 86400 cncidr: type: http behavior: ipcidr url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt" path: ./ruleset/cncidr.yaml interval: 86400 lancidr: type: http behavior: ipcidr url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt" path: ./ruleset/lancidr.yaml interval: 86400 applications: type: http behavior: classical url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt" path: ./ruleset/applications.yaml interval: 86400 rules: - DOMAIN-SUFFIX,visualstudio.com,DIRECT - DOMAIN-SUFFIX,azure.com,DIRECT - DOMAIN-SUFFIX,vscode.dev,Proxies - RULE-SET,applications,DIRECT - DOMAIN,clash.razord.top,DIRECT - DOMAIN,yacd.haishan.me,DIRECT - RULE-SET,private,DIRECT - RULE-SET,reject,REJECT - RULE-SET,tld-not-cn,Proxies - RULE-SET,gfw,Proxies - RULE-SET,telegramcidr,Proxies - MATCH,DIRECT

2024年06月16日 · 3 分钟 · Cassius0924

macOS Word 更好的快捷键配置指南

Microsoft Word在macOS平台上是一款功能强大的文字处理工具,然而,要使其与macOS原生编辑器更好地无缝切换,合理配置快捷键是至关重要的。本指南将介绍一些新的macOS Word的快捷键,使您能够更高效地编辑文档,同时保持与系统级快捷键的一致性。 快捷键 Word快捷键名 备注 Ctrl + A StartOfLine 跳到行首 Ctrl + E EndOfLine 跳到行尾 Ctrl + N LineDown 下一行 Ctrl + P LineUp 上一行 Ctrl + F CharRight 下一个字符 Ctrl + B CharLeft 上一个字符 Ctrl + J NextPage 跳到下一页 Ctrl + K PrevPage 跳到上一页 Ctrl + V PasteTextOnly 无格式粘贴 Ctrl + H Highlight 高亮选中的文字 Ctrl + T TableInsertTable 插入表格 Cmd + Shift + F NavPaneSearch 高级面板搜索 Option + Return TableInsertRowBelow 在表格下方插入一行

2024年06月16日 · 1 分钟 · Cassius0924

macOS Word 设置论文排版指南

正文字体大小默认12,两端对齐,1.5倍行距。字体类型选择 Latin 文字,将字体改成 Times New Roman,再将字体类型改成 Asian 亚洲文字,将字体改成 SimHei(黑体)。 带首行缩进的正文打开样式面板,点击 New Style。 输入样式名称“Indent”,继承于 Normal 样式。 左下角选择 Paragraph 面板,将 Special 改成 First line,后面填 0.86cm。 各级标题一级标题打开 Heading 1 一级标题的设置。 字体大小默认16,加粗,黑色,居中对齐,1.5倍行距。字体类型选择 Latin 文字,将字体改成 Times New Roman,再将字体类型改成 Asian 亚洲文字,将字体改成 SimHei(黑体)。 左下角选择 Paragraph 面板,将 Special 改成 none,取消继承于正文样式(Normal)的值。 ...

2024年06月16日 · 1 分钟 · Cassius0924

macOS 设置自动复制消息验证码指南

前提 接受短信验证码的 SMI 卡必须在上 iPhone iPhone 和 macOS 须登录同一个 iCloud 打开短信转发打开 iPhone 的设置,找到 Message 短信 App 的设置。 往下拉,找到 Text Message Forwarding 短信转发并点击,打开需要被转发的 Mac 电脑。若你有 iPda,也可以顺便转发至 iPad。 打开 macOS 的 Message 短信应用,按下快捷键 command+, 打开设置。打开 iMessage 面板,勾选需要接受的短信来源。 下载 MessAuto点击跳转 Github 下载地址 下载自己电脑对应的版本,M系列的芯片下载第一个,Intel芯片下载第二个。 下载完毕后,解压压缩包会直接得到一个名为 MessAuto.app 的应用程序文件,需要将它拖进 Applicatioin 文件夹里。 打开 Finder,按下快捷键command+ T 创建新的标签页,再按下 command+shift+A打开 Application 应用程序文件夹。 回到第一个标签页,将 MessAuto.app 拖到 Application 文件夹下。 由于 MessAuto 没有 Apple 的开发者证书,所以 M 系列芯片的电脑不能直接打开无需安装的应用程序,所以需要运行命令: ...

2024年06月16日 · 1 分钟 · Cassius0924

macOS 为 Google Coral Dev Board 刷入系统镜像指南

本指南旨在帮助 macOS 开发者为 Google Coral Dev Board (Google Edege TPU) 通过 OTG 刷入 Mendel Linux 系统。 第一步:连接到开发板串行控制台安装 USB 转 UART Bridge VCP 驱动程序官方下载地址:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads 下载完成后,双击运行并安装即可。 安装辅助程序通过 Homebrew 安装: sudo brew install screen fastboot 连接开发板先不给开发板供电,使用 micro-B USB 线将 Mac 连接到开发板。连接成功后会开发板会亮起绿色🟩和橙色🟧指示灯。 随后使用命令查看串口连接是否正常工作: ls /dev/cu* 连接正常应该会列出/dev/cu.SLAB_USBtoUART,如下图所示。 然后使用screen命令连接开发板串行命令行: screen /dev/cu.SLAB_USBtoUART 115200 此时命令行应为空白,因为开发板未供电开机。 给开发板供电如图所示,将开发板电源插入,电源接口为右边的 USB-C 接口。 连接后开发板会亮起电源指示灯并转动风扇。串行命令行则会打印开发板的开机信息: 接着在串行命令行输入命令使开发板进入 fastboot 模式: fastboot 0 第二步:刷入 Mendel Linux 系统下载 Mendel Linux 系统镜像回到 Mac,下载 Mendel Linux 系统镜像,官方下载地址:https://coral.ai/software/#mendel-dev-board ...

2024年06月16日 · 1 分钟 · Cassius0924

基于 L2CAP 协议的蓝牙 BLE 设备通信指南

蓝牙 BLE 是什么蓝牙BLE,即蓝牙低功耗 (Bluetooth Lower Energy)是一种蓝牙通信标准,设计用于短距离通信和低功耗应用。 相比经典蓝牙,BLE 更加节能,传输距离更远,连接更快。BLE 主要用于健身设备、医疗设备、家居自动化等场景。 蓝牙 BLE 设备的连接信道L2CAP的基本概念是信道(Signaling Channel)。信道是个抽象概念,表示两个设备某个协议层之间的通道。每个信道分配一个2字节的信道ID——CID(Channel ID),每个信道功用不同,比如CID=0x0004的信道表示属性协议(Attribute Protocol)专用信道。对于BLE协议,L2CAP共有三个信道ID: 0x0004 – 属性协议 0x0005 – 低功耗信令信道 0x0006 – 安全管理协议 其他信道则用于经典蓝牙。协议复用可以理解为,不同的协议走不同的信道,互不干扰。 代码#define ATT_CID 4; // 创建 L2CAP socket int s = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP); // 绑定 L2CAP socket struct sockaddr_l2 bind_addr = {0}; bind_addr.l2_family = AF_BLUETOOTH; bind_addr.l2_cid = htobs(ATT_CID); // ATT 信道 CID bdaddr_t any_addr = {{0, 0, 0, 0, 0, 0}}; bacpy(&bind_addr.l2_bdaddr, &any_addr); bind_addr.l2_bdaddr_type = BDADDR_LE_PUBLIC; int err = bind(s, (struct sockaddr *)&bind_addr, sizeof(bind_addr)); if (err) { return -1; } // 连接 L2CAP socket struct sockaddr_l2 conn_addr = {0}; conn_addr.l2_family = AF_BLUETOOTH; conn_addr.l2_cid = htobs(ATT_CID); // ATT CID str2ba(mac_address.c_str(), &conn_addr.l2_bdaddr); conn_addr.l2_bdaddr_type = BDADDR_LE_PUBLIC; err = connect(s, (struct sockaddr *)&conn_addr, sizeof(conn_addr)); if (err) { exit(-1); } L2CAP 数据包解析L2CAP(Logical Linked Control and Adaptation Protocol 逻辑链路控制与适配协议)工作在链路层,为上层协议提供数据通道。它支持数据分片与重组,确保数据完整可靠地传输。 ...

2024年06月16日 · 3 分钟 · Cassius0924

MacOS 修改 App Store 和地图软件语言指南

在 macOS 系统设置中,我们可以轻松地设置软件的语言,但有些应用程序如 App Store 和 Maps 却无法直接在设置中修改语言。这可能会让我们在使用这些应用程序时感到困惑,尤其是当我们需要使用不同语言的应用程序时。 本文提供了一种简单的方法,让您能够修改 App Store 和 Maps 的语言设置,以便在需要时更轻松地使用这些应用程序。 修改方法修改苹果地图的语言为简体中文: sudo defaults write com.apple.Maps AppleLanguages '("zh-CN")' 修改 App Store 的语言为美式英语: sudo defaults write com.apple.AppStore AppleLanguages '("en-US")' 其他软件其他软件均可在系统设置里直接设置。 其他语言同理,其他语言只需修改命令最后的**「语言区域码」**即可。 语言名称 代码 中文(简体) zh-CN 中文(繁体) zh-TW 英语(美国) en-US 英语(英国) en-GB 日语 ja 法语 fr 德语 de 西班牙语 es 韩语 ko 俄语 ru 葡萄牙语(巴西) pt-BR 阿拉伯语 ar 意大利语 it 土耳其语 tr 印地语 hi 印尼语 id 荷兰语 nl 波兰语 pl 瑞典语 sv 丹麦语 da 芬兰语 fi 挪威语 no 希腊语 el

2023年04月14日 · 1 分钟 · Cassius0924