Powershell 和 UTF-8

2024-01-05

我有一个 html 文件测试.html用atom创建,其中包含:

Testé 编码 utf-8

当我使用 Powershell 控制台阅读它时(我使用的是法语 Windows)

Get-Content -Raw test.html

我得到这个:

Testé encoding utf-8

为什么重音字符打印不正确?


  • The 原子编辑器 https://atom.io/创建 UTF-8 文件without a 伪BOM https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8默认情况下(从跨平台的角度来看,这是正确的做法)。

    • 其他流行的跨平台编辑器,例如视觉工作室代码 https://code.visualstudio.com/ and 崇高的文字 https://www.sublimetext.com/,以同样的方式行事。
  • Windows PowerShell[1] only recognizes UTF-8 files with a pseudo-BOM.

    • 在没有伪 BOM 的情况下,PowerShell 将文件解释为根据系统的旧版 ANSI 代码页, 例如Windows-1252 https://en.wikipedia.org/wiki/Windows-1252例如,在美国系统上。
      (这也是记事本使用的默认编码,它称之为“ANSI”,而不仅仅是当reading文件,而且当creating他们。 Windows PowerShell 也是如此Get-Content / Set-Content(此编码称为Default并且是实际的默认值,因此不需要指定);相比之下,Out-File / > createsUTF-16LE 编码的文件 (Unicode) 默认情况下。)

所以,为了Get-Content认识一个BOM-lessUTF-8 文件正确地在 Windows PowerShell 中,您必须use -Encoding utf8.


[1] By contrast, the cross-platform PowerShell Core https://github.com/PowerShell/PowerShell edition commendably defaults to UTF-8, consistently across cmdlets, both on reading and writing, so it does interpret UTF-8-encoded files correctly even without a BOM and by default also creates files without a BOM.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Powershell 和 UTF-8 的相关文章

  • Jenkins 执行 PowerShell 脚本

    我正在尝试从 Jenkins 运行 PowerShell 脚本 但它似乎完全忽略了执行策略 可以通过直接执行 powershell exe 或使用PowerShell插件 https wiki jenkins ci org display
  • Powershell Core 6 中的 HtmlWebResponseObject.ParsedHtml 替换

    我的目标是解析检索到的 html 文件Invoke WebRequest 如果可能的话 我想避免任何外部库 我面临的问题是Invoke WebRequest返回一个BasicHtmlWebResponseObject代替HtmlWebRes
  • 正确配置JDK环境变量后仍然找不到java命令

    我在 Windows 虚拟机启动时安装 JDK 使用 cloudinit 用户数据将 PowerShell 脚本传输到 Windows 计算机 然后运行该脚本来安装 JDK softwares Get ItemProperty HKLM S
  • 通过 PowerShell 对 TFS 构建进行排队

    TFS2012 具有一个 2010 构建控制器和一个 2010 构建代理 还有一个 2012 构建控制器和多个 2012 构建代理 我们的软件有多个版本的多个版本 构建根据约定命名 例如Foo version 1 0 和 Foo versi
  • 与 Write-Host 相比,Write-Output 的使用非常不可靠

    有人指出一个问题 如果我希望命令按顺序操作 建议使用 Write Output 而不是 Write Host 因为 Write Host 不会将输出放在管道上 而其他命令却这样做 这意味着 Write Host 输出可以发生在管道上的其他命
  • 并行启动服务

    我有一个脚本可以检查不同服务器上的某些服务是否已启动 如果没有启动 该脚本应该启动该服务 问题是 它不会并行启动服务 而是等待每个服务启动 Code server list Get Content path D Path list of s
  • PowerShell 模块中忽略 Write-Verbose

    我希望使用Write Verbose脚本和函数中的命令行开关 它在脚本 ps1 文件中按预期工作 但在模块 psm1 文件中则不然 该 commandlet 在模块中被忽略 运行以下脚本 PS gt scaffold ps1 verbose
  • Powershell 添加的字符串类型的 ParameterizedProperty Chars 属性是什么?

    请注意 C gt Get Member MemberType eq ParameterizedProperty TypeName System String Name MemberType Definition Chars Paramete
  • FileInfo.BaseName 存在于 PowerShell 中,但不存在于直接 .NET 中

    为什么在 NET 中System IO FileInfo对象没有BaseName属性 但我可以通过 PowerShell 使用该属性 例如 FolderItems Get ChildItem Path C Where Object isno
  • 如何使用 PowerShell 查找 CPU 和 RAM 使用情况?

    我试图让 PowerShell 提供 RAM 和 CPU 使用情况 但我无法弄清楚要使用哪个 WMI 类 我的计算机有两个处理器 因此拥有这两个处理器的信息会很有用 您还可以使用 Get Counter cmdlet PowerShell
  • #1115 - 未知字符集:'utf8mb4'

    我的电脑上运行着一个本地网络服务器 用于本地开发 我现在正处于导出数据库并导入到我的托管 VPS 的阶段 导出然后导入时出现以下错误 1115 未知字符集 utf8mb4 有人能指出我正确的方向吗 该错误明确表明您没有utf8mb4您的阶段
  • 在powershell的列中处理带有换行符的CSV

    目前 我有一个系统 它创建一个像下面这样的分隔文件 在其中我模拟了偶尔出现在列中的额外换行符 列 1 列 2 列 3 列 4 文本1 文本2 LF 文本3 LF 文本4 CR LF 文本1 文本2 LF LF 文本3 文本4 CR LF 文
  • Powershell - 奇怪的 WSL 输出字符串编码

    今天我只是想检查我的 Windows 工作站上是否安装了特定的子系统 因此 我使用 Windows Subsystem for Linux WSL 并安装可从 Microsoft Store 获取的 Ubuntu 现在我试图找到一种方法来检
  • Powershell:复制时自动更改文件属性

    我有一个只读文件的文件夹 当我将这些文件之一复制到测试位置时 我希望能够复制它们而不保留其原始属性 我可以做到这一点 但这很长 copy item srcfilefullname destfilefullname set itemprope
  • 为什么此 PowerShell 脚本无法正确执行此外部命令?

    以下代码将输出我希望运行的命令字符串 string SourceRepo C inetpub wwwroot Spyda string Repo C inetpub wwwroot BranchClone string revstring
  • 如何在管道函数中使用 Write-Progress?

    我正在尝试编写一个函数PowerShell接受管道输入 我想使用显示进度条Write Progress 管道中每个项目的增量 例如 function Write PipelineProgress Cmdletbinding Param Pa
  • 如何从 C# 运行 PowerShell 脚本

    我正在尝试使用 C 运行 PowerShell 脚本 但没有成功 这是我的功能 private void ExecutePowerShellCommand string scriptfile RunspaceConfiguration ru
  • 通过powershell运行ADB命令

    所以我尝试通过 powershell 脚本运行一些 ADB 命令 这是我正在尝试做的一个简单示例 adb shell echo in adb shell su root echo you are now root ls cd data da
  • 在 .Net 中保持 Powershell 运行空间打开

    我正在尝试从 VB Net 中运行一些 PowerShell 代码 如果您知道的话 C 编码器也可能会有所帮助 代码的第一部分 我需要使用密码连接到 na 控制器 并且需要保持连接打开 我还有其他命令需要通过单击按钮来运行 获取文件 显示文
  • netsh 结果到 PowerShell 对象

    我正在尝试与NETSH https ss64 com nt netsh html来自 PowerShell 我想看到这个命令的结果 例如一个对象 但是netsh返回一个字符串 netsh wlan show hostednetwork Ge

随机推荐

  • 检测零分和交叉中获胜的比赛

    我需要知道在圈和十字游戏中检测获胜动作的最佳方法 源代码并不重要 我只需要一个示例或可以开始的东西 我唯一能想到的就是使用循环并测试玩家所做的每个动作的每个方向 以搜索例如连续五个 有没有更快更有效的方法呢 真正简单的解决方案是从最后一步开
  • Haskell 中的多核编程 - Control.Parallel

    我正在尝试学习如何使用Control Parallel模块 但我认为我没有理解正确 我正在尝试运行以下代码 fibs hs import Control Parallel fib Int gt Int fib 0 0 fib 1 1 fib
  • 如何使用 Java 8 中的流将列表中的对象按属性分组到其他列表中?

    我想对包含以下内容的对象列表进行分组time属性分为 5 分钟间隔 最好使用流和收集器 我在 StackOverflow 上找到的唯一可能的解决方案是计算我需要多少个间隔 子列表 将每个对象添加到每个列表中 并过滤掉不适合相应时间范围的对象
  • php中如何检查文件路径是否为图像?

    我有一个表存储 images documents pdf 等的文件路径 我的查询是 Select File Paths from Uploads 现在我如何使用 PHP 检查文件路径是否是图像 如果是图像我必须查看它或下载它 老好获取图像大
  • 有没有一种干净的方法来阻止 windows.h 创建近和远宏?

    在 WinDef h 的深处有一段来自分段内存时代的遗迹 define far define near 如果您尝试使用近或远作为变量名称 这显然会导致问题 有什么干净的解决方法吗 其他然后重命名我的变量 您可以安全地取消定义它们 这与其他人
  • 将用户控件添加到 wpf 窗口

    我创建了一个用户控件 但是当我将其添加到窗口中的 XAML 时 Intellisense 不会拾取它 并且我不知道如何将其添加到窗口 您需要在窗口标签内添加引用 就像是 xmlns controls clr namespace YourCu
  • 在 C# 中支持 VB.NET 的导入命名空间功能

    我习惯VB NET 我正在学习的游戏源代码是用C 编写的 我觉得很烦人 我必须添加using System Diagnostics到源代码以便输入Debug WriteLine 我在项目属性下进行了检查 但找不到允许我将命名空间添加到导入的
  • Spring框架是否支持多部分请求中的流模式

    我在中找不到任何指示Spring文档 http static springsource org spring docs 1 2 x reference mvc html它支持在处理多部分请求的 MultipartHttpServletReq
  • 如何强制 Internet Explorer 使用元标记中给出的编码?

    我正在尝试准备一个包含英语和阿拉伯语混合内容的演示 html 页面 基本上它包含一个小桌子 左边是英语短语 右边是阿拉伯语翻译 因为我不懂阿拉伯语 所以我从 中取出了阿拉伯字母的前三个字符统一码参考 http www unicode org
  • 如何在 Visual Studio 2013 调试会话期间编辑日期时间变量

    如果我放置断点并导致代码执行在我希望测试 DateTime 变量值的行暂停 则 Visual Studio 2013 调试器将以 10 1 2017 12 的形式显示 DateTime 变量的值 00 00 AM 当我悬停它甚至允许我开始编
  • 如何从分离的视图控制器中呈现视图控制器?

    我试图以模态方式呈现一个视图控制器并获得著名的Presenting view controllers on detached view controllers is discouraged错误 我进行了研究 一致的解决方案似乎是由家长进行演
  • sk paymentqueue canmake payment内存泄漏检查

    I run Instrument去检查Leaks在我的应用程序中 又有 1 条新泄漏 SKPaymentQueue canMakePayments 每次启动时甚至没有调用付款代码 根据这个日期 SKPaymentQueue s CanMak
  • 在 Go 中,将接收者变量命名为“self”是误导还是好的做法?

    我看过相当多的关于 Go 的博客和视频 据我记得 没有一个作者在编写方法时使用 self 或 this 作为接收者变量 然而 似乎有很多关于堆栈溢出的问题可以做到这一点 这让我思考这是否会误导将变量命名为 self 阅读规格方法集 http
  • 如何查看 MultipartForm 请求的内容?

    我正在使用 Apache HTTPClient 4 我正在做非常正常的多部分工作 如下所示 val entity new MultipartEntity HttpMultipartMode BROWSER COMPATIBLE entity
  • 如何仅在会话级别启用休眠查询缓存?

    如果我有一个查询在单个线程中被多次调用 并且我只想为该线程 或为该会话缓存该查询 及其结果 因为我每个线程使用一个会话 该怎么办 我这样做 注意 我的二级缓存已打开 但主要用于 session get 但我不想将它用于我的查询缓存 因为我只
  • 指定asp.net core静态文件夹的默认文件名

    目前 我在一个文件夹中生成了一个生成的 index html js 和其他静态文件 并且我将该文件夹标记为静态文件夹 通过在 Startup cs 的配置方法中添加以下内容 app UseDefaultFiles app UseStatic
  • 批量文件上传整个文件夹到FTP

    我正在尝试将整个文件夹上传到 ftp 但它只上传一个文件 可能是什么问题 Open Run窗口 cmd ftp s C ftpfile bat 这是我的批处理代码代码 open FTP address USERNAME PASSWORD b
  • 如何重新加载 UIViewController

    我想重新加载选项卡控制器 UIViewController 中包含的所有视图 搜索后我发现我必须应用 setNeedsDisplay 方法 但我无法找到应该在哪里应用它 也欢迎任何其他替代方案 BOOL application UIAppl
  • 脚本全名和路径 $0 调用时不可见

    我有一个脚本 task sh 其内容如下 bin bash CUR DIR pwd SCRIPTPATH CUR DIR dirname 0 当我用 bash task sh 调用它时 它按预期工作 但是当用 task sh 调用它时 lo
  • Powershell 和 UTF-8

    我有一个 html 文件测试 html用atom创建 其中包含 Test 编码 utf 8 当我使用 Powershell 控制台阅读它时 我使用的是法语 Windows Get Content Raw test html 我得到这个 Te