问题标签 [utf-16le]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
43 浏览

windows - 从 Win32::API 调用返回一个宽字符串

我试图弄清楚如何GetCommandLineW在 Perl 中读取结果。

我知道它应该返回一个以"在 PowerShell 下调用时开头的字符串,但我似乎无法提取多个字符。

以下代码片段加载该GetCommandLineW函数并尝试调用它。✱</p>

印刷

如果我LPWSTR在命令行中替换为char *或任何其他类似字符串的东西,我会得到同样的结果。如果我使用int或垃圾值作为返回类型,我会以十进制数的形式返回指针。

有没有一种方法可以向Win32::API模块指示我打算读回 UTF-16 LE 字符串,或者有一种方法可以“说服”它将所述字符串的所有内容放入 Perl 标量中。

$GetCommandLineW->Call()如果生成的标量中有一些编码问题需要在调用后立即清理,只要所有数据都在那里,我没关系。


✱ shebang 在那里,因此可以使用或不使用 Cygwin 调用相同的脚本。

0 投票
2 回答
1284 浏览

java - 使用 UTF-16LE 编码和 Apache Commons IO 读写文本文件

我用 Java 编写了一个应用程序并用 C# 复制了它。该应用程序读取和写入带有制表符分隔数据的文本文件,以供 HMI 软件使用。HMI 软件需要 UTF 或 ANSI 编码才能正确显示度数符号,否则我只会使用似乎可以正常工作的 ASCII。C# 应用程序可以毫无问题地打开任何一个保存的文件。java 应用程序可以完美地读取它保存的文件,但是在读取用 C# 保存的文件时会出现一个小问题。将文件中的第一个字符解析为 int 时会引发 numberformatexception。该字符始终为“1”。我已经用editpadlight打开了这两个文件,即使使用编码查看它们并且编码是UTF-16LE,它们似乎也是相同的。我正在为此绞尽脑汁,任何帮助将不胜感激。

我看不出用 C# 保存的文件和用 Java 保存的文件有什么区别

EditPad Lite 中数据的屏幕截图

0 投票
2 回答
317 浏览

ruby - 如何将 Ruby 的 readlines.grep 用于 UTF-16 文件?

给定以下命令创建的以下两个文件:

我想在 UTF-16 格式的文件中找到匹配的模式,就像在 UTF-8 中使用 Ruby 一样。

这是 UTF-8 文件的工作示例:

但是,它不适用于 UTF-16LE 格式的文件:


我尝试通过以下方式转换基于此帖子的文件:

但它ÿþ之前打印了一些无效字符()foo,其次我不知道grep转换后如何使用方法(它报告为未定义的方法)。

如何使用readlines.grep()UTF-16 文件的方法?或者其他一些简单的方法,我的目标是使用特定的正则表达式模式打印行。


理想情况下在一行中,因此该命令可用于 CI 测试。

这是一些真实世界的场景:

但由于日志文件的 UTF-16 格式,该命令不起作用。

0 投票
2 回答
294 浏览

ruby - 在 Ruby 中,如何可靠地检测文件的编码(包括没有 BOM 的 UTF-16)?

我需要在 Ruby 中检测文件类型和编码。

我目前正在通过魔法gem 使用 libmagic,但它有一个问题:如果 UTF-16 文件没有 BOM,它就不会检测到它们。是此类文件的一个示例。

我可以使用任何其他库或方法来正确检测 UTF-16 文件吗?

PS 还尝试了 rchardetcharlock_holmes,但运气不佳。

0 投票
1 回答
252 浏览

encoding - 如何将 NSIS 中的字符串编码为 UTF-16LE 格式?

您好我正在尝试在 Python 中为 NSIS 安装程序复制此代码。

m = hashlib.md5("C:\PROGRAM FILES\My Program".encode('utf-16LE'))

它基本上对字符串进行编码,然后对其应用 MD5 哈希。我找到了 NSIS 的 MD5 哈希插件。但是,我仍然不知道如何将 $0 中的字符串转换为 utf-16LE 格式。

谢谢

0 投票
1 回答
441 浏览

bash - 尝试使用 iconv 将 US-ASCII 转换为 UTF-16LE 并获得不需要的输出

我正在尝试将文件System.Web.WebPages.Razor.dll.refresh从 ASCII 转换为 UTF-16LE。当我file -i对目录中的其他刷新文件运行命令时,我得到如下信息:

System.Web.Optimization.dll.refresh: text/plain; charset=utf-16le

当我在目标文件上运行它时,我得到:

System.Web.WebPages.Razor.dll.refresh: text/plain; charset=us-ascii

我认为这种编码差异导致我的构建管道出错,所以我试图将此 ASCII 文件转换为 UTF-16LE,所以它就像其他刷新文件一样。但是,iconv似乎并没有给我我正在寻找的输出。

我的命令:

iconv -f US-ASCII -t UTF-16LE "System.Web.WebPages.Razor.dll.refresh" > "System.Web.WebPages.Razor.dll.refresh.new" && mv -f "System.Web.WebPages.Razor.dll.refresh.new" "System.Web.WebPages.Razor.dll.refresh"

输出有两个问题。

1)它将文件隔开(即从thist h i s)。

2)当我file -i在这个新文件上运行时,我得到以下输出:

System.Web.WebPages.Razor.dll.refresh: application/octet-stream; charset=binary

为什么我得到这个二进制输出,为什么它会隔开文本?有没有更好的方法将此文件转换为正确的编码?

0 投票
1 回答
95 浏览

c# - Hpw 我可以将编码的代码“像 00E6' 还原为 C# 中的字符吗

我正在使用使用 UTF16 LE 解码文本的程序(如下例所示),因此我需要将编码恢复为字符才能使用它。

或者,如果我可以从 UTF16LE 转换为 UTF16BE,然后从 UTF16BE 转换为字符,则另一种解决方案将适用于我,这不是问题。

06F006E006A00750065003B00200043006F006D006D006100

或者

450631062D0628062706200043064A06410620002D062706440643061F0643064406200034064A0620002C064A062F061F06280627064A062C

0 投票
1 回答
832 浏览

python - 如何使用 utf-16-le bom 编码保存文件?

我可以将文件保存到utf-16-le,但我不明白如何保存bom它。

我可以添加'\ufeff到文件的开头,但我搜索替代变体

0 投票
2 回答
379 浏览

javascript - Javascript 字符串到 Base64 UTF-16BE

我正在尝试将字符串转换为 BASE64 和 utf-16 Big Endian 字符集,以便使用 sms API 发送它。

我无法在 Javascript 中这样做。

这是我想在短信中发送的原始 js 字符串:

使用btoa(originalString)我得到VGVzdGUgNSUyNSDh4MHAIOnoycgg7ezNzCDz8tPSIPr52tkg58cg48MgPyEsOw==的不是我需要的......我为此目的使用了一个在线转换器,这是正确的值:

我测试了用它发送短信,它工作正常。

0 投票
1 回答
288 浏览

delphi - 从 Amazon S3 检索对象后,如何从流中获取常规 Delphi 字符串?

我正在使用 TAmazonStorageService 类 UploadObject 方法将 JSON 字符串放入 Amazon S3。当我检索对象时,它被放置在一个流中(我使用的是 TStringStream),它似乎是用 UTF-16 LE 编码的。然后,如果我尝试将该 JSON 加载到备忘录、TStringList 或任何其他类似对象中,我只会得到第一个字符,即 JSON 的左花括号。另一方面,如果我将它写入一个文件,我会得到整个 JSON(UTF-16 LE 编码)。我假设因为 UTF-16 LE 用两个字节对每个字符进行编码,并且第二个字节始终为 0,Delphi 假设 0 是文件结束标记。

如何从 TStringStream 中获取常规的 Delphi 字符串 (WideString),甚至是 ANSIString,或者是否有另一个流可以用来获取 WideString 或 ANSIString。

这是代表上传的伪代码:

这是代表 JSON 检索的伪代码: