-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generate WinRAR regkey file contain a UTF-8 Username. #27
Comments
是的,但主要还是 ANSI 编码的问题。ANSI 在不同国家和地区有不同的标准,如 GB2312(中国)、JIS(日本)等,不同 ANSI 编码之间互不兼容。Powershell 7.4 之前的版本还不能支持 ANSI 编码,所以先用 ASCII 代替。 当然对于 ANSI 编码而言, 参考: 所以多语言的支持可以如下生成(utf8 与 utf8BOM 均可),例如: .\winrar-keygen.exe "简体中文" "Github.com" | Out-File -Encoding utf8 rarreg.key
.\winrar-keygen.exe "繁體中文" "Github.com" | Out-File -Encoding utf8 rarreg.key
.\winrar-keygen.exe "Deutsch" "Github.com" | Out-File -Encoding utf8 rarreg.key
.\winrar-keygen.exe "Français" "Github.com" | Out-File -Encoding utf8 rarreg.key
.\winrar-keygen.exe "日本語" "Github.com" | Out-File -Encoding utf8 rarreg.key
.\winrar-keygen.exe "한국어" "Github.com" | Out-File -Encoding utf8 rarreg.key 当然,生成后需要手动将 Powershell 支持 ANSI 编码要等到 7.4
Powershell 需要在 7.4 版本之后才能使用 ANSI 编码,例如生成您的 license 可采用如下命令: .\winrar-keygen.exe "神北小毬" "Single PC usage license" | Out-File -Encoding ansi rarreg.key 对于现在 7.4 之前版本的 Powershell,暂时采用如下命令: .\winrar-keygen.exe "神北小毬" "Single PC usage license" | Out-File -Encoding utf8 rarreg.key 然后,手动将生成的 安装 Powershell 7.4当前 Winget Microsoft.PowerShell 版本为 7.3.7,但是 Microsoft.PowerShell.Preview 预览版已经更新到 7.4.x,多语言支持还需稍等一段时间,不过已经可以排上日程了 😀 |
这么看来应该是拿
|
不是。一个是utf-8编码,在日语系统中文字显示正常。一个是GB2312编码,在日语系统中按照Shift JIS显示了。 |
后者对应的是图1,前者对应的是图2? |
显示为[神北小毬]的rarreg.key文件为UTF-8编码,显示为[乱码]的rarreg.key文件为GB2312编码。 |
哦那就是用了 utf8 编码生成。在 Windows 应用中使用 UTF-8 代码页,或者对 WinRarKeygen.hpp 中 |
更新添加了对 utf-8 编码的支持 |
我安装了Powershell 7.4.2,在PROFILE设置了UTF-8编码($OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding)。 |
事实上 Windows 中的文本文件没有格式,Windows 根本不会自行跟踪文本文件的编码,所以也无法可靠地检测文本文件中的编码(可以做的就是通过搜索非 ascii 字符并尝试与 Unicode 组合来进行有根据的猜测)[1]。 有一个非官方的约定,如果文件以 UTF-8 with BOM 开头,则它是 UTF-8,但该约定并未得到普遍支持。所以即使同为 UTF-8 的文本文件也常常会有不同的头部编码;即使文本文件的十六进制编码开头为 [System.IO.File]::ReadAllBytes(".\codecheck.txt") 实际上 keygen 仍是按照 ANSI 编码(ASCII + Windows 所设置国家或地区的编码)方式运行,以下配置仅是让 pwsh 能够以 UTF-8 编码处理输入和输出。要让程序本身以 UTF-8 编码运行,须 Windows 设置 Unicode UTF-8 提供全球语言支持 [4]。 $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding 参考: |
I brought a genuine WinRAR license on win-rar.com, and got a rarreg.key file that contain utf-8 characters.
Then I try use your winrar-keygen to generate a rarreg.key file like the genuine one.
我今天购买了正版的WinRAR授权,然后发现授权文件可以使用中文。
后经过自己尝试用你的winrar-keygen生成了中文用户名的rarreg.key文件。
首先在控制面板-时钟和区域-区域的管理选项卡下,选择[更改系统区域设置],勾选[Beta版:使用Unicode UTF-8提供全球语言支持]
重启电脑后用Powershell在winrar-keygen文件夹下运行
.\winrar-keygen-x64.exe "utf8:神北小毬" "Single PC usage license" | Out-File -Encoding UTF8 rarreg.key
生成的文件中增加一个换行,更改文件编码为utf-8 no ROM。之后此文件就可以正常激活WinRAR 7.00了。
rarreg[神北小毬].zip
The text was updated successfully, but these errors were encountered: