首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Powershell导入具有中文域名的网站

使用Powershell导入具有中文域名的网站
EN

Stack Overflow用户
提问于 2019-09-16 03:07:09
回答 1查看 145关注 0票数 1

我正在尝试使用PowerShell从xml文件中添加网站。

当我只使用CMD命令时

代码语言:javascript
复制
appcmd  add site /in < test.xml

网站的装订是“測試.com.tw”,一切都很好。

但是当我使用Powershell时

代码语言:javascript
复制
Get-Content test.xml | appcmd add site /in 

绑定将是“???.com.tw”

即使我在获取内容时将chcp更改为65001或使用“-encoding utf8”,但没有什么变化,仍然无法正确导入具有中文域名的网站。

我的服务器是2008 R2和Powershell 1.0

有人知道我怎么能修好它吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-16 05:17:04

PowerShell使用 preference variable来确定通过管道向外部程序(如appcmd)发送数据时要使用的字符编码(外部程序通过标准输入流stdin接收的内容)。

在PowerShell中,$OutputEncoding默认为ASCII(!),这意味着只有7位ASCII中的字符才被正确发送,并且该范围之外的所有字符都被文字?字符替换。

在从stdin $OutputEncoding中读取时,必须设置$OutputEncoding以匹配 appcmd 所期望的编码;根据您的反馈,必须使用UTF-8:

代码语言:javascript
复制
$OutputEncoding = [System.Text.Utf8Encoding]::new($false) # BOM-less UTF-8

Get-Content test.xml | appcmd add site /in 

# Consider restoring the previous $OutputEncoding value

注意:上面的假设假设Get-Content在读取test.xml时正确地识别了它的编码;如果不是,使用它的-Encoding参数显式地指定文件的编码。

互补的是,当[Console]::OutputEncoding 从外部程序读取 output 时,存储在E 229E 133E 133中的编码决定了输出如何解码E 234-参见this answer

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57949925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档