草庐IT

utf8_unicode_cs

全部标签

c++ - 在 UTF-8 内部工作然后仅在 Windows 需要时才转换为 UTF-16 是否有任何危险?

VisualStudio试图坚持使用tchars,当使用UNICODE选项编译时,它基本上最终会使用Windows和其他API的广泛版本。然后在应用程序内部使用UTF-8是否有任何危险(这使得C++STL的使用更容易并且还可以实现更可读的跨平台代码)然后仅在需要使用任何时转换为UTF-16操作系统API?我特别询问有关为多个操作系统开发的问题-Windows不使用UTF-8,而其他操作系统(如Mac)则使用。 最佳答案 正如其他人所说,内部使用UTF-8没有危险,然后在需要调用Windows函数时转换。但是请注意,如果您要显示大量文

c - 在有或没有 UNICODE 支持的情况下,如何在我的程序中使用 _stprintf?

如果定义了_UNICODE,则Microsoft的将_stprintf定义为swprintf,否则定义为sprintf.但是这些函数有不同的参数!在swprintf中,第二个参数是缓冲区大小,但是sprintf没有这个。有人犯错了吗?如果是这样,这是一个很大的问题。我如何在我的程序中使用_stprintf,并让它们在使用和不使用_UNICODE的情况下工作? 最佳答案 您在这里看到了平行进化。swprintf是标准C的后来者,在发现(A)8位不足以用于文本和(B)您应该将缓冲区大小与缓冲区一起传递之后。TCHAR是微软统一ASCII

windows - Vim 打开一个新文件夹而不是一个启用了 `set enc=utf-8` 的现有文件

当我从位于子目录(例如gvimsubdir/file)的Windows控制台使用vim或gvim打开文件时,它会在subdir\subdir中创建一个新文件\file说"subdir\file"[NewDIRECTORY]而不是简单地打开位于subdir\file的现有文件。发生这种情况是因为我在我的vimrc中添加了以下行:setenc=utf-8是否可以在Windows上以UTF-8模式打开和创建文件而不会出现此问题?您也可以查看myvimrcfile.感谢您的帮助。 最佳答案 更改vimrc中autochdir和encodin

php - 在 Windows 上列出包含 Unicode 字符的目录

我正在使用Windows2003编写一些PHP代码。我使用XAMPPPortable(复制到D:)。问题:$path='D:\ebooks';$all_file=scandir($path);foreach($all_fileas$file){if(is_dir("$path/$file")&&$file!='.'&&$file!='..'){echo$file."\n";}}当我调用脚本(使用浏览器)时,我没有看到任何包含Unicode字符的目录(在D:\ebooks中)(我用越南语、日语、中文、捷克语进行了测试)。但是如果我删除is_dir("$path/$file"),目录会显示

c - 如何测试我的应用程序是否兼容 UNICODE?

如果这是一个愚蠢的问题,我深表歉意。我最近在Windows中使用C和WinApi开发了一个应用程序。我需要检查应用程序是否兼容UNICODE。我怎样才能测试我的机器?是否遵循任何程序来检查UNICODE兼容性。此外,我没有中文机器或任何其他语言。我希望此测试在我的机器上完成,默认语言为英语。如果可能,请提供一些链接或详细过程。 最佳答案 好问题。在Windows平台上,这确实具有挑战性,因为支持许多不同的编码和代码页,并且可以在它们之间混合使用。我通常做的是在混合了两种非ASCII语言的输入上测试应用程序,例如混合了俄语和希伯来语字

c++ - 宽字符字符串文字是否以 UTF-16LE 编码?

假设我有以下内容:wchar_t*str=L"HelloWorld!";L"HelloWorld!"是以UTF-16LE还是UTF-16BE编码的?注意:我使用的是VisualC++2010。 最佳答案 您可以安全地假设Windows上的任何宽字符串都使用小端UTF-16-请参阅此答案以获得更详细的说明:CanIsafelyassumethatWindowsinstallationswillalwaysbelittle-endian? 关于c++-宽字符字符串文字是否以UTF-16LE编

c++ - Unicode 工具提示未显示

我试图在我的应用程序窗口中显示unicode工具提示,但它们似乎没有显示。非unicode文本显示正确,但只要我尝试执行unicode,就不会显示任何工具提示。以下是我目前正在做的事情,感谢您的帮助。HWNDparentHwnd=pickInfo->getViewer().getCachedHwnd();CWnd*pWnd=CWnd::FromHandlePermanent(parentHwnd);HINSTANCEhInstance=GetModuleHandle(NULL);if(isUnicode)m_toolInfoW.lpszText=L"Thistooltipdoesnot

c# - 为什么在我上次将输出编码保留为 UTF8 时 csc.exe 崩溃?

我正在遇到或遇到了一件非常奇怪的事情。我想知道其他人是否有以及为什么会这样。使用此行运行单行程序System.Console.WriteLine(System.Console.OutputEncoding.EncodingName);我看到编码是WesternEuropean(DOS)很好这是一些代码页的列表1200Unicode和65001utf-8和Windows-1252西欧(Windows)和850西欧DOS来自https://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx假设我编写了一个

windows - UTF-16 perl 输入输出

我正在编写一个脚本,它将一个UTF-16编码的文本文件作为输入并输出一个UTF-16编码的文本文件。useopen"encoding(UTF-16)";openINPUT,"input.txt:$!\n";open(OUTPUT,">output.txt");while(){printOUTPUT"$_\n"}假设我的程序将input.txt中的所有内容写入output.txt。这在我的cygwin环境中工作得很好,它使用“这是为cygwin-thread-multi-64int构建的perl5,版本14,颠覆2(v5.14.2)”但在我的Windows环境中,它使用“这是为MSWin

windows - 如何在 Windows 机器上的 perl 脚本中将 Unicode 文件转换为 ASCII 文件

我在Windows机器上有一个Unicode格式的文件。有什么方法可以使用perl脚本在Windows机器上将其转换为ASCII格式它是UTF-16BOM。 最佳答案 如果你想把unicode转换成ascii,你必须知道有些字符是不能转换的,因为它们根本不存在于ascii中。如果你能忍受,你可以试试这个:#!/usr/bin/envperlusestrict;usewarnings;useautodie;useopenIN=>':encoding(UTF-16)';useopenOUT=>':encoding(ascii)';my$