fix: 修复 PowerShell 脚本中文乱码问题
- 在所有 .ps1 脚本中添加 UTF-8 编码兼容块 (Console OutputEncoding/InputEncoding + chcp 65001) - 兼容 Windows PowerShell 5.x, PS 7.x, Windows Terminal, conhost, ISE - 添加 UTF-8 BOM 确保本地执行时编码正确识别 - try/catch 静默处理不支持 Console 类的环境
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# Claude Code Configuration Script for XCodeCLI (Windows)
|
# Claude Code Configuration Script for XCodeCLI (Windows)
|
||||||
# This script configures Claude Code to use your XCodeCLI instance
|
# This script configures Claude Code to use your XCodeCLI instance
|
||||||
# Run with: powershell -ExecutionPolicy Bypass -File setup-claude-code.ps1 -ApiKey YOUR_KEY
|
# Run with: powershell -ExecutionPolicy Bypass -File setup-claude-code.ps1 -ApiKey YOUR_KEY
|
||||||
# Or via one-liner: & { $key='YOUR_KEY'; iwr -useb https://api.xcodecli.com/setup-claude-code.ps1 | iex }
|
# Or via one-liner: & { $key='YOUR_KEY'; iwr -useb https://api.xcodecli.com/setup-claude-code.ps1 | iex }
|
||||||
@@ -13,6 +13,20 @@ param(
|
|||||||
# Check for pre-set variables from one-liner command (use different names to avoid conflict)
|
# Check for pre-set variables from one-liner command (use different names to avoid conflict)
|
||||||
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
||||||
|
|
||||||
|
# ========== UTF-8 编码兼容 ==========
|
||||||
|
# 确保中文字符在各种 PowerShell 环境中正确显示
|
||||||
|
# 兼容: Windows PowerShell 5.x, PowerShell 7.x, Windows Terminal, conhost, ISE, iwr|iex
|
||||||
|
try {
|
||||||
|
if ($Host.Name -eq 'ConsoleHost') {
|
||||||
|
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
}
|
||||||
|
$OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
if ($env:OS -eq 'Windows_NT') {
|
||||||
|
& cmd /c "chcp 65001 >nul" 2>&1 | Out-Null
|
||||||
|
}
|
||||||
|
} catch { }
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
$DefaultBaseUrl = "https://api2.xcodecli.com"
|
$DefaultBaseUrl = "https://api2.xcodecli.com"
|
||||||
$ClaudeConfigDir = "$env:USERPROFILE\.claude"
|
$ClaudeConfigDir = "$env:USERPROFILE\.claude"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Gemini CLI Configuration Script for XCodeCLI (Windows)
|
# Gemini CLI Configuration Script for XCodeCLI (Windows)
|
||||||
# This script configures Gemini CLI to use your XCodeCLI instance
|
# This script configures Gemini CLI to use your XCodeCLI instance
|
||||||
# Automatically tests multiple API endpoints and selects the working one
|
# Automatically tests multiple API endpoints and selects the working one
|
||||||
# Run with: powershell -ExecutionPolicy Bypass -File setup-gemini.ps1 -ApiKey YOUR_KEY
|
# Run with: powershell -ExecutionPolicy Bypass -File setup-gemini.ps1 -ApiKey YOUR_KEY
|
||||||
@@ -13,6 +13,20 @@ param(
|
|||||||
# Check for pre-set variables from one-liner command
|
# Check for pre-set variables from one-liner command
|
||||||
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
||||||
|
|
||||||
|
# ========== UTF-8 编码兼容 ==========
|
||||||
|
# 确保中文字符在各种 PowerShell 环境中正确显示
|
||||||
|
# 兼容: Windows PowerShell 5.x, PowerShell 7.x, Windows Terminal, conhost, ISE, iwr|iex
|
||||||
|
try {
|
||||||
|
if ($Host.Name -eq 'ConsoleHost') {
|
||||||
|
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
}
|
||||||
|
$OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
if ($env:OS -eq 'Windows_NT') {
|
||||||
|
& cmd /c "chcp 65001 >nul" 2>&1 | Out-Null
|
||||||
|
}
|
||||||
|
} catch { }
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
$DefaultBaseUrl = "https://api2.xcodecli.com"
|
$DefaultBaseUrl = "https://api2.xcodecli.com"
|
||||||
$GeminiConfigDir = "$env:USERPROFILE\.gemini"
|
$GeminiConfigDir = "$env:USERPROFILE\.gemini"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Codex Configuration Script for XCodeCLI (Windows)
|
# Codex Configuration Script for XCodeCLI (Windows)
|
||||||
# This script configures Codex to use your XCodeCLI instance
|
# This script configures Codex to use your XCodeCLI instance
|
||||||
# Automatically tests multiple API endpoints and selects the working one
|
# Automatically tests multiple API endpoints and selects the working one
|
||||||
# Run with: powershell -ExecutionPolicy Bypass -File setup-codex.ps1 -ApiKey YOUR_KEY
|
# Run with: powershell -ExecutionPolicy Bypass -File setup-codex.ps1 -ApiKey YOUR_KEY
|
||||||
@@ -13,6 +13,20 @@ param(
|
|||||||
# Check for pre-set variables from one-liner command
|
# Check for pre-set variables from one-liner command
|
||||||
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
||||||
|
|
||||||
|
# ========== UTF-8 编码兼容 ==========
|
||||||
|
# 确保中文字符在各种 PowerShell 环境中正确显示
|
||||||
|
# 兼容: Windows PowerShell 5.x, PowerShell 7.x, Windows Terminal, conhost, ISE, iwr|iex
|
||||||
|
try {
|
||||||
|
if ($Host.Name -eq 'ConsoleHost') {
|
||||||
|
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
}
|
||||||
|
$OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
if ($env:OS -eq 'Windows_NT') {
|
||||||
|
& cmd /c "chcp 65001 >nul" 2>&1 | Out-Null
|
||||||
|
}
|
||||||
|
} catch { }
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
$DefaultBaseUrl = "https://api2.xcodecli.com"
|
$DefaultBaseUrl = "https://api2.xcodecli.com"
|
||||||
$CodexConfigDir = "$env:USERPROFILE\.codex"
|
$CodexConfigDir = "$env:USERPROFILE\.codex"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Claude Code Configuration Script for XCodeCLI (Windows)
|
# Claude Code Configuration Script for XCodeCLI (Windows)
|
||||||
# This script configures Claude Code to use your XCodeCLI instance
|
# This script configures Claude Code to use your XCodeCLI instance
|
||||||
# Run with: powershell -ExecutionPolicy Bypass -File setup-claude-code.ps1 -ApiKey YOUR_KEY
|
# Run with: powershell -ExecutionPolicy Bypass -File setup-claude-code.ps1 -ApiKey YOUR_KEY
|
||||||
# Or via one-liner: & { $key='YOUR_KEY'; iwr -useb https://api.xcodecli.com/setup-claude-code.ps1 | iex }
|
# Or via one-liner: & { $key='YOUR_KEY'; iwr -useb https://api.xcodecli.com/setup-claude-code.ps1 | iex }
|
||||||
@@ -13,6 +13,20 @@ param(
|
|||||||
# Check for pre-set variables from one-liner command (use different names to avoid conflict)
|
# Check for pre-set variables from one-liner command (use different names to avoid conflict)
|
||||||
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
||||||
|
|
||||||
|
# ========== UTF-8 编码兼容 ==========
|
||||||
|
# 确保中文字符在各种 PowerShell 环境中正确显示
|
||||||
|
# 兼容: Windows PowerShell 5.x, PowerShell 7.x, Windows Terminal, conhost, ISE, iwr|iex
|
||||||
|
try {
|
||||||
|
if ($Host.Name -eq 'ConsoleHost') {
|
||||||
|
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
}
|
||||||
|
$OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
if ($env:OS -eq 'Windows_NT') {
|
||||||
|
& cmd /c "chcp 65001 >nul" 2>&1 | Out-Null
|
||||||
|
}
|
||||||
|
} catch { }
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
$DefaultBaseUrl = "https://api2.xcodecli.com"
|
$DefaultBaseUrl = "https://api2.xcodecli.com"
|
||||||
$ClaudeConfigDir = "$env:USERPROFILE\.claude"
|
$ClaudeConfigDir = "$env:USERPROFILE\.claude"
|
||||||
|
|||||||
19
setup.ps1
19
setup.ps1
@@ -1,4 +1,4 @@
|
|||||||
# XCodeCLI Setup Launcher (Windows)
|
# XCodeCLI Setup Launcher (Windows)
|
||||||
# 一站式安装和配置 Claude Code, Gemini CLI, Codex
|
# 一站式安装和配置 Claude Code, Gemini CLI, Codex
|
||||||
|
|
||||||
param(
|
param(
|
||||||
@@ -9,6 +9,23 @@ param(
|
|||||||
# 支持一行命令传入 API Key: $key='xxx'; iwr ... | iex
|
# 支持一行命令传入 API Key: $key='xxx'; iwr ... | iex
|
||||||
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
if (-not $ApiKey -and (Test-Path Variable:key)) { $ApiKey = $key }
|
||||||
|
|
||||||
|
# ========== UTF-8 编码兼容 ==========
|
||||||
|
# 确保中文字符在各种 PowerShell 环境中正确显示
|
||||||
|
# 兼容: Windows PowerShell 5.x, PowerShell 7.x, Windows Terminal, conhost, ISE, iwr|iex
|
||||||
|
try {
|
||||||
|
if ($Host.Name -eq 'ConsoleHost') {
|
||||||
|
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
}
|
||||||
|
$OutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
# Windows 下同步控制台代码页为 UTF-8
|
||||||
|
if ($env:OS -eq 'Windows_NT') {
|
||||||
|
& cmd /c "chcp 65001 >nul" 2>&1 | Out-Null
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
# 静默处理 - ISE 等环境可能不支持 Console 类操作
|
||||||
|
}
|
||||||
|
|
||||||
# ========== 颜色输出函数 ==========
|
# ========== 颜色输出函数 ==========
|
||||||
function Write-Info { param([string]$Message); Write-Host "[INFO]" -ForegroundColor Blue -NoNewline; Write-Host " $Message" }
|
function Write-Info { param([string]$Message); Write-Host "[INFO]" -ForegroundColor Blue -NoNewline; Write-Host " $Message" }
|
||||||
function Write-Success { param([string]$Message); Write-Host "[SUCCESS]" -ForegroundColor Green -NoNewline; Write-Host " $Message" }
|
function Write-Success { param([string]$Message); Write-Host "[SUCCESS]" -ForegroundColor Green -NoNewline; Write-Host " $Message" }
|
||||||
|
|||||||
Reference in New Issue
Block a user