草庐IT

c++ - 将 C 字符串从本地编码转换为 UTF8

我正在编写一个小应用程序,我在其中从控制台读取一些文本,然后将其存储在经典的char*字符串中。碰巧我需要将它传递给一个只接受UTF-8编码字符串的库。由于Windows控制台使用本地编码,我需要从本地编码转换为UTF-8。如果我没记错的话,我可以使用MultiByteToWideChar(..)编码为UTF-16,然后使用WideCharToMultiByte(..)转换为UTF-8。但是我想知道是否有一种方法可以在不使用任何外部库的情况下直接从本地编码转换为UTF-8,因为转换为wchar的想法只是为了能够转换回char(utf-8编码但仍然)对我来说有点奇怪。

windows - 如何创建具有特定编码的 ZIP 文件

在我的Linux服务器上,我有一些带有重音名称的文件(test-éàïù.zip)。当我使用7zip命令行工具将它们添加到新的ZIP文件时,字符集/编码信息未保存,并且在Windows计算机上打开时,存档无法正确显示文件名。我知道7zip创建ZipV1.0文件,而不是2.0。也许字符集仅限于MSDos字符集?我如何使用7zip或其他zip工具指定编码,以获得可移植的存档? 最佳答案 这是一个super用户问题,但是...ZIP使用IBM437的默认代码页。可以使用UTF-8,但并非所有zip工具和库都支持它。一些zip工具会执行任意

c++ - 在将 ASCII 字符串传递给 Windows API 函数之前将它们转换为 UTF-16

在我当前的项目中,我一直在使用宽字符(utf16)。但是由于用户的唯一输入将是一个url,无论如何它都必须以ascii和另一个字符串结束,所以我正在考虑将整个程序切换为ascii。我的问题是,在将字符串传递给WindowsAPI函数之前将它们转换为utf16有什么好处吗?在网上做了一些研究后,如果您不在Windows上使用UTF-16,似乎很多人都推荐这个。 最佳答案 在WindowsAPI中,如果你调用像这样的函数intSomeFunctionA(constchar*);然后它会自动将字符串转换为UTF-16并调用函数的真实、Un

windows - 非程序员最简单的 xml 编辑器

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我需要一个支持utf-8的最简单的编辑器来在windows中编辑xml文件;像写字板这样的东西是完美的。它适用于非程序员,用于编辑现有文件(到目前为止他使用写字板,但现在我翻译了utf-8编码的文件,很多意大利口音显然不可读)。有什么建议吗?谢谢,这对我很有帮助问候尼古拉

c++ - Windows 游戏 : UTF-8, UTF-16、DirectX 和 Lua

我正在为学习目的开发一个Windows游戏(我正在学习DirectX)。我希望它有UTF支持。Readingthisquestion我了解到windows使用的是wchar_t,也就是UTF-16。我希望我的游戏支持Lua脚本,并且Luadoesn'treallylikeUnicodemuch..它只是将字符串视为“字节流”;这对于UTF-8来说已经足够好了,但是UTF-16几乎不可能使用。长话短说:windows需要UTF-16,lua需要UTF-8。所以我想,让我们只使用带有普通char*和string的UTF-8!.length()会被搞砸,但谁在乎呢?但是它不起作用:const

c++ - 将 UTF-16 转换为 UTF-8

我目前使用的是VC++2008MFC。由于PostgreSQL不支持UTF-16(Windows为Unicode使用的编码),我需要在存储之前将字符串从UTF-16转换为UTF-8。这是我的代码片段。//demo.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"demo.h"#include"Utils.h"#include#ifdef_DEBUG#definenewDEBUG_NEW#endif//TheoneandonlyapplicationobjectCWinAppthe

windows - nodejs解码(子进程使用)

我将spawn用于JScript(来自Windows)我的解码文本问题???????T-SQL微软SQLServer2012???????-俄文。varworker,path=require('path'),spawn=require('child_process').spawn,cscript=path.join(process.env.SystemRoot,'system32','cscript.exe')functionstartCscript(){worker=spawn(cscript,['/nologo','testwsh.js']);worker.stdout.setEn

c++ - 为什么 utf-8 字符在 cmd.exe 中不显示?

我正在Windows下使用tdm-gcc测试c++11字符串文字:#includeintmain(intargc,char**argv){std::cout命令行:e:\src\c++\11>g++utf8_literal.cc-std=c++11使用chcp65001将代码更改为utf8然后运行应用程序,结果是第一个汉字你不正确。但是,如果添加一个英文字符,例如a则显示正确:因此我们可以排除字体问题。为什么第一个字符在前面没有英文字符的情况下拒绝显示? 最佳答案 std::cout:u8"你确定要这样做吗"之后的字符串不是UTF-

java - 使用 Charset.forName for UTF-7 在 Linux 和 Windows 上获得不同的结果

代码:importjava.nio.charset.Charset;publicstaticCharsetlookup(finalStringname){if(name==null){returnnull;}try{Charsetcharset=Charset.forName(name);if(charset!=null){Charsetsuperset=map.get(charset);if(superset!=null){charset=superset;}}returncharset;}catch(IllegalCharsetNameExceptionex){log.warn("

python - Python 脚本在 Windows XP 上创建的文件名编码错误

我的Python脚本在WindowsXP下创建了一个xml文件,但该文件没有使用西类牙字符(例如“ñ”或一些重音字母)获得正确的编码。首先,使用以下代码从excelshell读取文件名,我使用xlrd库读取Excel文件:filename=excelsheet.cell_value(rowx=first_row,colx=5)然后,我尝试了一些编码但没有成功生成具有正确编码的文件:filename=filename[:-1].encode("utf-8")filename=filename[:-1].encode("latin1")filename=filename[:-1].enco