- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想将我的 visual studio 项目从 MBCS 转换为 Unicode CS。但是我的源代码中有 900 个 const char 数组,有没有自动的方法来做到这一点?一行一行地做很多事情。在这样做时,我指的是将 _T("asd") 添加到“asd”。
最佳答案
没有办法解决这个问题。
除非您使用 L
告诉编译器始终将其编码为 Unicode(WCHAR/宽字符串),否则字符串文字会被解释/编码为“char *”,或者您使用 _T
宏根据“字符集”是设置为 ANSI/MBCS 还是 Unicode 对其进行编码..
您可能想通过“文件 | 高级保存选项”将源文件的编码更改为 Unicode...认为这会改变字符串文字的编码方式...但不会...它们仍然会被视为窄字符串。
可能有助于理解选项的一些链接。
Visual C++: Migrating traditional C and C++ string code to a Unicode world
http://www.codeproject.com/Articles/2995/The-Complete-Guide-to-C-Strings-Part-I-Win32-Chara
最好的办法是在 Visual Studio 中编写一个可以运行的“宏”,它将遍历包含字符串文字的源代码文件集并添加 _T( )
或 L
这些字符串的前缀。
你制作宏的复杂程度取决于你......但是应该可以让宏与字符串进行模式匹配,然后要求你确认是否为字符串文字添加前缀/包装(使用 L或 _T())...因为您不想转换源中的所有字符串...因为有些字符串需要保留为窄字符串。
另一种选择是您可以使用“查找”对话框查找字符串,然后直观地查看它们是否需要修改并手动进行修改。
最后,您可以利用“翻译工具”,它遵循“源文件中字符串的就地本地化替换,然后重新编译”本地化技术(与“将字符串提取到资源中”相反)技术......这是更常见的技术)。我知道有这样的工具,可以从源文件中提取字符串...构建这些字符串的表/数据库...然后进行翻译,然后重新插入....(事实上我写了一些东西给过去这样做)。也许您可以找到一个工具来执行此操作...但稍微修改它以在插入字符串时插入 L 前缀。
事实上,如果您不厌其烦地使您的应用程序成为 Unicode...那么我想在某个时候您将打算支持您的应用程序的不同本地化...所以您可以做的就是移动您的所有字符串到资源...资源将它们保存为 Unicode...您必须修改代码才能从资源等中加载字符串。
关于.net - 将 VS MBCS 源代码表达式转换为 Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12263765/
我有一个 MFC 应用程序,其中字符集是“未设置”。在具有多字节字符集代码页的操作系统上运行此应用程序有哪些相关风险? 最佳答案 “字符集:未设置”选项未定义 _MBCS也不_UNICODE .这意味
我正在寻找一个正则表达式来匹配 C++ 项目中的 MBCS 字符串。这些是包含在双引号中的字符串,没有 L"..."或 _T("...")说明符。任何一行代码都可以有多个引号。字符串可以包含不应结束匹
我在使用 Python 脚本打开包含元音变音字符的文件时遇到问题。当然,我认为我可以通过 unicode utf8 修复来纠正这个问题,但事实并非如此...... 我最终使用了mbcs(默认为cp12
我想检测以“HKEY_LOCAL_MACHINE\SOFTWARE\blah\SetupPath”开头的注册表项,如果可能的话读取到 CString。 我在 MSDN 上看到了 RegOpenKeyE
我有一个用 ISO C++ 编写的库。它不使用 Winapi、TCHAR 或类似的东西。我目前正在将其构建为字符集设置为 Unicode 的静态库。我打算将它链接到其他库,其中一些是使用 Unicod
我有一个 MBCS(多字节字符)MFC 应用程序,我从 stdafx.h 文件中删除了 #ifdefs,现在我的 MBCS 应用程序使用公共(public)控件 6。在互联网上我发现很多文章用户说一些
我的问题似乎让人们感到困惑。这是一些具体的东西: 我们的代码执行以下操作: FILE * fout = _tfsopen(_T("丸穴種類.txt"), _T("w"), _SH_DENYNO); _
我正在使用 VS2008 开发一个项目,该项目是在 MBCS 中编译的,但我需要使用一些 UTF-8 字符串来与某些 Web 服务进行交互。我编写了一个函数,它可以完美地与 Unicode 一起工作,
我有一个大型 MFC 应用程序,我正在扩展它以允许多语言输入。目前我需要允许用户在单个对话框的编辑框中输入 Unicode 数据。 有没有办法在不为整个应用程序打开 UNICODE 或 MBCS 的情
我想将我的 visual studio 项目从 MBCS 转换为 Unicode CS。但是我的源代码中有 900 个 const char 数组,有没有自动的方法来做到这一点?一行一行地做很多事情。
我搜索了一下,没有找到太多相关信息。我们需要为编码等提供最通用的支持,并希望确保 ANTLR 能够处理我们扔给它的任何东西。 最佳答案 Java VM 使用 16 位字符编码,因此 MBCS 流在读入
我有一个 vc++ dll,其编译时的字符集设置为“使用 Unicode 字符集”。现在我想在我的 vc++ exe 中使用这个 dll,其字符集是“使用多字节字符集”。我知道理论上没有什么可以阻止我
我正在尝试将包含来自位图文件的数据的 std::string 缓冲区转换为 std::wstring。 我正在使用 MultiByteToWideChar,但这不起作用,因为该函数在遇到第一个 '\0
我正在阅读 Windows 上的字符集和编码。我注意到在 Visual Studio 编译器(用于 C++)中有两个编译器标志,称为 MBCS 和 UNICODE。它们之间有什么区别?我没有得到的是
我有一个遗留应用程序使用 Window 的旧 MBCS。该软件是国际化的,并使用代码页使其适用于其他语言。我读过中文包含多字节字符。我的问题是,哪些以及如何在美国的计算机上生成它们?我需要这个进行测试
我正在使用 Visual C++ (VS2005) 并在多字节字符集 (MBCS) 中编译项目。但是,该程序需要通过 XMLRPC 与 Web 应用程序(使用 utf-8)进行通信。所以我想也许我可以
我使用 Visual Studio 打开了现有的 MFC 项目,并且在构建时收到以下错误消息: Error 1 error MSB8031: Use of MBCS encoding in MFC p
我正在使用一个生成 const char* 类型的以 UTF-8 空字符结尾的字符串的库。示例包括: MIGUEL ANTÓNIO DONA ESTEFÂNIA 我想将这两个 const char
我正在 Linux 上编写一个程序,它必须与现有的 Windows 程序交互。我无法修改 windows 程序的工作方式,但我必须与现有数据集成。该程序将通过 TCP 网络套接字接收原始数据结构。不幸
有人处理过使用 std::string 函数处理 MBCS 吗?例如在 C 中我可以这样做: p = _mbsrchr(path, '\\'); 但在 C++ 中我这样做: found = path.
我是一名优秀的程序员,十分优秀!