powershell - 使用 -File 时,PowerShell switch 语句使用什么编码?
问题描述
使用 -File 时,PowerShell switch 语句使用什么编码?它基本上是从文件中读取的,所以我希望对应用于读取的字节的编码进行一些控制?
我的意思不是 Get-Content 等,而是 switch 语句,例如:
switch -File ~\Desktop\demo.md -Regex
{
'^$'
{
'Blank line'
}
'^#\s(.*)$'
{
'Heading'
}
'^-(.*)$'
{
'Bulleted list'
}
default
{
'Normal line'
}
}
根据定义,将读取的字节转换为解释字符使用某种编码,对吗?
解决方案
开关中的 -file 选项很少使用,但确实具有速度和内存使用优势。据我所知,确切的编码目前没有记录。
我们在 PowerShell in Action 第 3 版的第 171 页上使用的示例使用 Out-File 创建我们将在 switch 语句中使用的文件。Out-File 默认为 Unicode,因此我将假设 switch -file也使用 Unicode。
如果您需要控制编码,或者文件似乎无法正确读取,请恢复使用 Get-Content。
我再说一遍,我对 Unicode 的假设是基于 PowerShell 帮助系统信息而不是任何明确的知识。
推荐阅读
- php - 如何在 IIS 上使用 php 连接到 MongoDB
- boost - 在 Conda 环境中使用 CMake 构建
- visual-studio - 如何在 VS2017 中查看单元测试的结果?
- sql-server - 在 Access 中查询链接表时出现错误 3035
- android - 谷歌任务 API
- java - 在启动 Spring Boot 应用程序时获取为 MethodArgumentNotValidException 映射的不明确的 @ExceptionHandler 方法
- php - 为什么我的第二个函数总是返回 false?另外,为什么我的 if 语句中的代码无论如何都会运行?
- swift - 确定 NSImageView 是否突出显示
- png - 使用 Pillow 保存为 JPEG 的图像与原始图像不同。
- raspberry-pi - Raspberry Pi - SPI 设备树更改