问题标签 [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.
windows - 从 Win32::API 调用返回一个宽字符串
我试图弄清楚如何GetCommandLineW
在 Perl 中读取结果。
我知道它应该返回一个以"
在 PowerShell 下调用时开头的字符串,但我似乎无法提取多个字符。
以下代码片段加载该GetCommandLineW
函数并尝试调用它。✱</p>
印刷
如果我LPWSTR
在命令行中替换为char *
或任何其他类似字符串的东西,我会得到同样的结果。如果我使用int
或垃圾值作为返回类型,我会以十进制数的形式返回指针。
有没有一种方法可以向Win32::API
模块指示我打算读回 UTF-16 LE 字符串,或者有一种方法可以“说服”它将所述字符串的所有内容放入 Perl 标量中。
$GetCommandLineW->Call()
如果生成的标量中有一些编码问题需要在调用后立即清理,只要所有数据都在那里,我没关系。
✱ shebang 在那里,因此可以使用或不使用 Cygwin 调用相同的脚本。
java - 使用 UTF-16LE 编码和 Apache Commons IO 读写文本文件
我用 Java 编写了一个应用程序并用 C# 复制了它。该应用程序读取和写入带有制表符分隔数据的文本文件,以供 HMI 软件使用。HMI 软件需要 UTF 或 ANSI 编码才能正确显示度数符号,否则我只会使用似乎可以正常工作的 ASCII。C# 应用程序可以毫无问题地打开任何一个保存的文件。java 应用程序可以完美地读取它保存的文件,但是在读取用 C# 保存的文件时会出现一个小问题。将文件中的第一个字符解析为 int 时会引发 numberformatexception。该字符始终为“1”。我已经用editpadlight打开了这两个文件,即使使用编码查看它们并且编码是UTF-16LE,它们似乎也是相同的。我正在为此绞尽脑汁,任何帮助将不胜感激。
我看不出用 C# 保存的文件和用 Java 保存的文件有什么区别
ruby - 如何将 Ruby 的 readlines.grep 用于 UTF-16 文件?
给定以下命令创建的以下两个文件:
我想在 UTF-16 格式的文件中找到匹配的模式,就像在 UTF-8 中使用 Ruby 一样。
这是 UTF-8 文件的工作示例:
但是,它不适用于 UTF-16LE 格式的文件:
我尝试通过以下方式转换基于此帖子的文件:
但它ÿþ
之前打印了一些无效字符()foo
,其次我不知道grep
转换后如何使用方法(它报告为未定义的方法)。
如何使用readlines.grep()
UTF-16 文件的方法?或者其他一些简单的方法,我的目标是使用特定的正则表达式模式打印行。
理想情况下在一行中,因此该命令可用于 CI 测试。
这是一些真实世界的场景:
但由于日志文件的 UTF-16 格式,该命令不起作用。
ruby - 在 Ruby 中,如何可靠地检测文件的编码(包括没有 BOM 的 UTF-16)?
我需要在 Ruby 中检测文件类型和编码。
我目前正在通过魔法gem 使用 libmagic,但它有一个问题:如果 UTF-16 文件没有 BOM,它就不会检测到它们。这是此类文件的一个示例。
我可以使用任何其他库或方法来正确检测 UTF-16 文件吗?
PS 还尝试了 rchardet和charlock_holmes,但运气不佳。
encoding - 如何将 NSIS 中的字符串编码为 UTF-16LE 格式?
您好我正在尝试在 Python 中为 NSIS 安装程序复制此代码。
m = hashlib.md5("C:\PROGRAM FILES\My Program".encode('utf-16LE'))
它基本上对字符串进行编码,然后对其应用 MD5 哈希。我找到了 NSIS 的 MD5 哈希插件。但是,我仍然不知道如何将 $0 中的字符串转换为 utf-16LE 格式。
谢谢
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)它将文件隔开(即从this
到t h i s
)。
2)当我file -i
在这个新文件上运行时,我得到以下输出:
System.Web.WebPages.Razor.dll.refresh: application/octet-stream; charset=binary
为什么我得到这个二进制输出,为什么它会隔开文本?有没有更好的方法将此文件转换为正确的编码?
c# - Hpw 我可以将编码的代码“像 00E6' 还原为 C# 中的字符吗
我正在使用使用 UTF16 LE 解码文本的程序(如下例所示),因此我需要将编码恢复为字符才能使用它。
或者,如果我可以从 UTF16LE 转换为 UTF16BE,然后从 UTF16BE 转换为字符,则另一种解决方案将适用于我,这不是问题。
06F006E006A00750065003B00200043006F006D006D006100
或者
450631062D0628062706200043064A06410620002D062706440643061F0643064406200034064A0620002C064A062F061F06280627064A062C
python - 如何使用 utf-16-le bom 编码保存文件?
我可以将文件保存到utf-16-le
,但我不明白如何保存bom
它。
我可以添加'\ufeff
到文件的开头,但我搜索替代变体
javascript - Javascript 字符串到 Base64 UTF-16BE
我正在尝试将字符串转换为 BASE64 和 utf-16 Big Endian 字符集,以便使用 sms API 发送它。
我无法在 Javascript 中这样做。
这是我想在短信中发送的原始 js 字符串:
使用btoa(originalString)
我得到VGVzdGUgNSUyNSDh4MHAIOnoycgg7ezNzCDz8tPSIPr52tkg58cg48MgPyEsOw==
的不是我需要的......我为此目的使用了一个在线转换器,这是正确的值:
我测试了用它发送短信,它工作正常。
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 检索的伪代码: