From 44e0ef1c7456a43b8b96e2069adab3c69d7ca8c6 Mon Sep 17 00:00:00 2001 From: bitcookies Date: Sun, 29 Jun 2025 10:28:40 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20UTF8NoBOM=20Support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/keygen.yml | 42 ++++++++++++------ .github/workflows/keygen_secrets.yml | 64 +++++++++++++++++----------- 2 files changed, 69 insertions(+), 37 deletions(-) diff --git a/.github/workflows/keygen.yml b/.github/workflows/keygen.yml index 5c2c6a3..267b4d1 100644 --- a/.github/workflows/keygen.yml +++ b/.github/workflows/keygen.yml @@ -33,17 +33,17 @@ jobs: - uses: actions/checkout@v4.2.2 - name: Generating License (ASCII) - # Do Not Use pwsh + # Use PowerShell 5 shell: powershell run: | $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding $PSVersionTable.PSVersion - bin/x64-Release/winrar-keygen.exe "${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key + bin/x64-Release/winrar-keygen.exe "${{ env.KEY_USERNAME }}" "${{ env.KEY_LICENSE_NAME }}" | Out-File -Encoding ${{ env.KEY_ENCODING }} rarreg.key - name: Uploading License - uses: actions/upload-artifact@v4.4.3 + uses: actions/upload-artifact@v4.6.2 with: - name: rarreg_file_${{env.KEY_ENCODING}} + name: rarreg_file_${{ env.KEY_ENCODING }} path: rarreg.key if-no-files-found: error retention-days: 90 @@ -67,12 +67,12 @@ jobs: run: | [System.Text.Encoding]::Default $OutputEncoding - bin/x64-Release/winrar-keygen.exe "${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key + bin/x64-Release/winrar-keygen.exe "${{ env.KEY_USERNAME }}" "${{ env.KEY_LICENSE_NAME }}" | Out-File -Encoding ${{ env.KEY_ENCODING }} rarreg.key - name: Uploading License - uses: actions/upload-artifact@v4.4.3 + uses: actions/upload-artifact@v4.6.2 with: - name: rarreg_file_${{env.KEY_ENCODING}} + name: rarreg_file_${{ env.KEY_ENCODING }} path: rarreg.key if-no-files-found: error retention-days: 90 @@ -91,17 +91,33 @@ jobs: - uses: actions/checkout@v4.2.2 - name: Generating License (UTF-8) - # Do Not Use pwsh - shell: powershell + # Use PowerShell 7 + shell: pwsh run: | $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding $PSVersionTable.PSVersion - bin/x64-Release/winrar-keygen.exe "utf8:${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key - + $user = "utf8:${{ env.KEY_USERNAME }}" + $license = "${{ env.KEY_LICENSE_NAME }}" + + $allAscii = $true + foreach ($c in $license.ToCharArray()) { + if ([int][char]$c -gt 127) { + $allAscii = $false + break + } + } + + if (-not $allAscii) { + $license = "utf8:" + $license + } + + Write-Host "License string: $license" + bin/x64-Release/winrar-keygen.exe "$user" "$license" | Out-File -Encoding utf8NoBOM rarreg.key + - name: Uploading License - uses: actions/upload-artifact@v4.4.3 + uses: actions/upload-artifact@v4.6.2 with: - name: rarreg_file_${{env.KEY_ENCODING}} + name: rarreg_file_${{ env.KEY_ENCODING }} path: rarreg.key if-no-files-found: error retention-days: 90 diff --git a/.github/workflows/keygen_secrets.yml b/.github/workflows/keygen_secrets.yml index eb9ae49..1bcfc30 100644 --- a/.github/workflows/keygen_secrets.yml +++ b/.github/workflows/keygen_secrets.yml @@ -14,27 +14,27 @@ jobs: runs-on: windows-2022 env: KEY_ENCODING: ${{ github.event.inputs.KEY_ENCODING }} - KEY_USERNAME: ${{secrets.TEXT1}} - KEY_LICENSE_NAME: ${{secrets.TEXT2}} - ZIP_PWD: ${{secrets.PWD}} + KEY_USERNAME: ${{ secrets.TEXT1 }} + KEY_LICENSE_NAME: ${{ secrets.TEXT2 }} + ZIP_PWD: ${{ secrets.PWD }} if: github.event.inputs.KEY_ENCODING == 'ascii' steps: - uses: actions/checkout@v4.2.2 - name: Generating License (ASCII) - # Do Not Use pwsh + # Use PowerShell 5 shell: powershell run: | $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding $PSVersionTable.PSVersion - bin/x64-Release/winrar-keygen.exe "${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key - 7z a rarreg.7z rarreg.key -p"${{env.ZIP_PWD}}" + bin/x64-Release/winrar-keygen.exe "${{ env.KEY_USERNAME }}" "${{ env.KEY_LICENSE_NAME }}" | Out-File -Encoding ${{ env.KEY_ENCODING }} rarreg.key + 7z a rarreg.7z rarreg.key -p"${{ env.ZIP_PWD }}" - name: Uploading License - uses: actions/upload-artifact@v4.4.3 + uses: actions/upload-artifact@v4.6.2 with: - name: rarreg_file_${{env.KEY_ENCODING}} + name: rarreg_file_${{ env.KEY_ENCODING }} path: rarreg.7z if-no-files-found: error retention-days: 1 @@ -45,9 +45,9 @@ jobs: runs-on: windows-2022 env: KEY_ENCODING: ${{ github.event.inputs.KEY_ENCODING }} - KEY_USERNAME: ${{secrets.TEXT1}} - KEY_LICENSE_NAME: ${{secrets.TEXT2}} - ZIP_PWD: ${{secrets.PWD}} + KEY_USERNAME: ${{ secrets.TEXT1 }} + KEY_LICENSE_NAME: ${{ secrets.TEXT2 }} + ZIP_PWD: ${{ secrets.PWD }} if: github.event.inputs.KEY_ENCODING == 'ansi' steps: @@ -59,13 +59,13 @@ jobs: run: | [System.Text.Encoding]::Default $OutputEncoding - bin/x64-Release/winrar-keygen.exe "${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key - 7z a rarreg.7z rarreg.key -p"${{env.ZIP_PWD}}" + bin/x64-Release/winrar-keygen.exe "${{ env.KEY_USERNAME }}" "${{ env.KEY_LICENSE_NAME }}" | Out-File -Encoding ${{ env.KEY_ENCODING }} rarreg.key + 7z a rarreg.7z rarreg.key -p"${{ env.ZIP_PWD }}" - name: Uploading License - uses: actions/upload-artifact@v4.4.3 + uses: actions/upload-artifact@v4.6.2 with: - name: rarreg_file_${{env.KEY_ENCODING}} + name: rarreg_file_${{ env.KEY_ENCODING }} path: rarreg.7z if-no-files-found: error retention-days: 1 @@ -76,27 +76,43 @@ jobs: runs-on: windows-2022 env: KEY_ENCODING: ${{ github.event.inputs.KEY_ENCODING }} - KEY_USERNAME: ${{secrets.TEXT1}} - KEY_LICENSE_NAME: ${{secrets.TEXT2}} - ZIP_PWD: ${{secrets.PWD}} + KEY_USERNAME: ${{ secrets.TEXT1 }} + KEY_LICENSE_NAME: ${{ secrets.TEXT2 }} + ZIP_PWD: ${{ secrets.PWD }} if: github.event.inputs.KEY_ENCODING == 'utf8' steps: - uses: actions/checkout@v4.2.2 - name: Generating License (UTF-8) - # Do Not Use pwsh - shell: powershell + # Use PowerShell 7 + shell: pwsh run: | $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding $PSVersionTable.PSVersion - bin/x64-Release/winrar-keygen.exe "utf8:${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key - 7z a rarreg.7z rarreg.key -p"${{env.ZIP_PWD}}" + $user = "utf8:${{ env.KEY_USERNAME }}" + $license = "${{ env.KEY_LICENSE_NAME }}" + + $allAscii = $true + foreach ($c in $license.ToCharArray()) { + if ([int][char]$c -gt 127) { + $allAscii = $false + break + } + } + + if (-not $allAscii) { + $license = "utf8:" + $license + } + + Write-Host "Final license: $license" + bin/x64-Release/winrar-keygen.exe "$user" "$license" | Out-File -Encoding utf8NoBOM rarreg.key + 7z a rarreg.7z rarreg.key -p"${{ env.ZIP_PWD }}" - name: Uploading License - uses: actions/upload-artifact@v4.4.3 + uses: actions/upload-artifact@v4.6.2 with: - name: rarreg_file_${{env.KEY_ENCODING}} + name: rarreg_file_${{ env.KEY_ENCODING }} path: rarreg.7z if-no-files-found: error retention-days: 1