问题标签 [wstring]

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 投票
3 回答
8129 浏览

gdb - 如何在 gdb 中打印 wstring

如何在 gdb 中打印 wstring?

0 投票
12 回答
366028 浏览

c++ - std::wstring VS std::string

我无法理解 和 之间的std::string区别std::wstring。我知道wstring支持宽字符,例如 Unicode 字符。我有以下问题:

  1. 我应该什么时候使用std::wstringover std::string
  2. 可以std::string容纳整个 ASCII 字符集,包括特殊字符吗?
  3. std::wstring所有流行的 C++ 编译器都支持吗?
  4. 究竟什么是“宽字符”?
0 投票
4 回答
4632 浏览

c++ - C++ 中的可移植 wchar_t

C++ 中有可移植的 wchar_t 吗?在 Windows 上,它的 2 个字节。其他一切都是4个字节。我想在我的应用程序中使用 wstring,但是如果我决定移植它,这将导致问题。

0 投票
2 回答
3207 浏览

c++ - C++0x 是否支持 std::wstring 与 UTF-8 字节序列的转换?

我看到 C++0x 将添加对 UTF-8、UTF-16 和 UTF-32 文字的支持。但是这三种表示之间的转换呢?

我计划在我的代码中到处使用 std::wstring 。但在处理文件和网络时,我还需要处理 UTF-8 编码的数据。C++0x 是否也支持这些操作?

0 投票
4 回答
7710 浏览

c++ - 错误 C2593:运算符 = 不明确

错误 C2593:运算符 = 不明确

为什么上述作业会出现此错误?它适用于VC6。不能在 VC9 中编译。

0 投票
1 回答
854 浏览

c++ - 从 vc6 dll 创建 wstring 时出现错误的指针或链接问题

我在 VC6 上生成了一个 DLL 并使用wstring,我正在尝试在 VC9 项目中使用它。在这个 DLL 中有一个更高级别的类操作wstring,称为UtfString.

我在我的项目中正确导入了所有内容,但是当我打电话时:

即使函数原型在库中,它也不会链接...

另一个问题是,当创建一个新的 UtfString 并调试我的应用程序时,新指针是<Bad Ptr>.

wstring我怀疑 VC6和 VC9之间存在冲突,wstring但我不确定。我想避免修改原始 Dll。

如果有人可以让我更清楚,并向我解释问题的真正原因是什么,那就太好了。

提前感谢您的回答,鲍里斯

0 投票
2 回答
2441 浏览

c++ - UCS-2LE 文本文件解析

我有一个使用 Microsoft 报告工具创建的文本文件。文本文件BOM 0xFFFE在开头包含 ,然后ASCII在字符之间包含空值(即“ F.i.e.l.d.1.”)的字符输出。我可以iconv用来将其转换为UTF-8用作UCS-2LE输入格式和UTF-8输出格式……效果很好。

我的问题是我想将文件中的行读UCS-2LE入字符串并解析出字段值,然后将它们写入ASCII文本文件(即Field1 Field2)。我已经尝试过基于string和-wstring的版本getline——当它从文件中读取字符串时,类似的函数substr(start, length)会将字符串解释为8-bit值,因此起始值和长度值是关闭的。

如何将UCS-2LE数据读入C++字符串并提取数据值?我查看了boost以及icu无数的谷歌搜索,但没有找到任何有效的东西。我在这里想念什么?请帮忙!

我的示例代码如下所示:

因此,例如,如果srcBuf包含“ W.e. t.h.i.n.k. i.n. g.e.n.e.r.a.l.i.t.i.e.s.”,那么substr()上面的返回“ .k. i.n. g.e”而不是“ g.e.n.e.r.a.l.i.t.i.e.s.”。

我想要的是读取字符串并处理它,而不必担心多字节表示。是否有人有使用boost(或其他)从文件中读取这些字符串并将它们转换为固定宽度表示以供内部使用的示例?

顺便说一句,我在使用 Eclipse 和 gcc 的 Mac 上。我可能STL不理解宽字符串吗?

谢谢!

0 投票
3 回答
4859 浏览

c++ - C ++ wstring如何从以NULL结尾的wchar_t数组分配

C++ 标准库中的大多数文本都提到 wstring 等同于 string,除了在 wchar_t 上参数化而不是 char,然后继续仅演示 string。

嗯,有时,有一些特定的怪癖,这里有一个:我似乎无法从一个 NULL 终止的 16 位字符数组中分配一个 wstring。问题是赋值愉快地使用空字符和任何垃圾作为实际字符。这是一个非常小的减少:

此时 l 不是预期的 6(“RKData”中的字符数),而是大得多。在我的测试运行中,它是 29。为什么是 29?不知道。内存转储不显示第 29 个字符的任何特定值。

所以问题是:这是我的标准 C++ 库(Mac OS X Snow Leopard)中的错误,还是我的代码中的错误?我应该如何将一个以空字符结尾的 16 位字符数组分配给 wstring?

谢谢

0 投票
2 回答
1176 浏览

c++ - Qt 使用带有 wstring 的 std::use_facet

我需要跨平台代码来跳过宽字符串的前导空格。看起来 g++(和 Qt 显然)根本没有为宽字符串初始化槽所以下面的代码适用于 VC++ 但几乎 g++ 因 bad_cast 异常而失败:

根据规范:“当 locale 对象中的 facet 存储库不包含具有请求的 locale::id 的 facet 时出现 bad_cast 异常”

所以一般问题g ++如何处理宽字符串?更狭窄的问题 - 如何至少为 ctype 初始化构面?

更新:经过一些实验,我检测到 linux g++ 正确初始化宽字符串的 facet - 所以代码可以工作。显然,如果仅 mingw,则描述的问题是特征。

0 投票
1 回答
1754 浏览

cstring - 将 Wstring 转换为 CString

我有一个 Cstring 变量,需要将其转换为 wstring。