问题标签 [widechar]
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.
c - wcscoll 返回与预期不同的结果
考虑这段代码:
输出是
但我希望它是-1
,因为 ą 就在波兰字母表中的 b 之前。为什么返回 158?如果不是这样,怎么能按字母顺序比较单词呢?
c++ - 尝试释放 wchar_t 指针时堆损坏
这是一个评估宽字符串是 L"false" 还是 L"true" 的代码,但是当我尝试运行它时,它在尝试释放重复的字符串指针“HEAP CORRUPTION DETECTED: after Normal”时给了我这个错误block(#135756) at 0x00000000002EB3A0。CRT 检测到应用程序在堆缓冲区结束后写入内存。”。
这是内联代码:
在 free 语句之前,所有字符串指针似乎都可以。我确信我犯了一些严重的错误,仅仅是因为我能够破坏堆。
编译器:Microsoft Visual Studio 2015 RC
处理器:Inter Core i5-3450 3.10 GHz
c++ - Linux宽字符串到多字节问题
我知道关于这个话题已经有很多问题了,但我在这里面临着一个非常不寻常的情况。
我在 Centos 工作。我的应用程序读取 wchar_t 中的一些数据并转换为多字节(UTF-8 编码)并在 google proto 消息中填充 char 缓冲区并发送到另一个应用程序。
另一个应用程序将其再次转换为宽字符串并将其显示给用户。我正在使用 wcstombs 进行转换。我的语言环境是“en_US.UTF-8”。
对于某些字符串,它工作正常。我在 wcstombs 返回-1的一个特定宽字符串(可能还有其他几个)中面临问题。错误号设置为 84(无效或不完整的多字节或宽字符)。
问题是,当我通过 eclipse 运行我的应用程序时,转换是成功的,但是当我的应用程序从 root(作为服务)运行时,转换失败。
使用widechartomultibyte API 在windows 中相同的字符串转换是成功的。
我无法理解为什么会这样。
希望高手能帮帮我。
编辑
c++ - 将字符串中的单个“字符”与宽字符进行比较
我有一个包含 unicode 字符的字符串(我不知道我是否使用了正确的命名法)。我可以逐个字符地查看,但我无法直接与之比较:
寻找宽字符存在的正确方法是什么?
这里是 MWE,尝试将字符与例如“α”进行比较时出现错误。
我在 Linux 中使用 clang 3.5。
我想要做的是(复制)用一个单词替换一个字符。我可以使用正则表达式,但这似乎有点矫枉过正。
c++ - 在“字符类型”模板类中使用字符串文字
我在 C++ 中有一个模板类,它将char_type
字符类型作为模板参数,例如char
, wchar_t
,char32_t
等......然后std::basic_string<char_type>
在代码中使用该类。
然后在课堂上的某个地方,我填写了一个转义序列表,例如"&"
. 这不起作用,因为取决于模板字符类型,我们需要使用"&"
, L"&"
, U"&"
...
有没有办法避免专门用于初始化表的模板函数,例如使用一些标准函数来转换字符串文字?
由于这些是转义序列,它们除了 ASCII 字符之外不包含任何其他内容。
visual-studio - WideCharToMultiByte 写入寄存器时产生汉字
我有一段古老的 IE BHO 代码,我正在尝试为它存储一些数据。
我正在尝试这种方法:
我输入的值被写入,可以成功读取。但是,当我在 regedit 中查看时,我看到的是汉字。这将使故障排除具有挑战性,因此我希望正确书写字符。
这显然是某种编码问题,但我似乎找不到解决它的灵丹妙药。
谢谢!
c++ - WideCharToMultiByte 标准模拟 UTF8
这段代码对我来说正常工作:
我想知道这段代码的跨平台模拟。我期待std::wcstombs
with std::codecvt_utf8
,但无法猜测如何以正确的方式使用它。
c++ - char, wchar_t, char16_t, char32_t 的尺寸订购保证
char
C++ 标准是否对, wchar_t
, char16_t
,的字节大小排序提供任何保证char32_t
?(欢迎从标准中提取任何内容)
例如,我是否可以保证:
c++ - 获取最后一个错误的宽字符版本?
这是微软的代码:
我为 NTstatus 添加了一个部分并将 arg 更改为 LPCWSTR。它基本上没有功能,因为只是在 LPVOID 类型上更改为 StringCchPrintfW 段错误。有什么方法可以使它对宽字符友好?
c - 我如何保证终端具有 NCURSES 的 Unicode/宽字符支持?
我正在为一个小 TUI(文本用户界面)练习开发一个 NCURSES 应用程序。不幸的是,我没有选择使用永远如此美妙和忠实的 ASCII。我的程序使用了很多 Unicode 方框图字符。
我的程序已经可以检测到终端是否具有颜色功能。我需要做类似的事情:
这不仅仅是简单地包含ncursesw
和设置语言环境的问题。我需要获取特定的终端信息,如果它不会发生,实际上会抛出一个错误。例如,当用户尝试以可爱的XTerm
而不是支持 Unicode 的UXTerm
.