问题标签 [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++ - 是否可以重载 wcout << 运算符以用 WriteConsoleW 替换它?
问题是 MinGW 编译的程序在通过 wcout 在控制台上打印非 ascii 字符时存在问题,输出可能显示来自不同代码页的字符或完全空白。但是winapiWriteConsoleW
完美运行。所以我问是否有可能改变 << 运算符的行为,这样它就可以调用 winapi 方法。
(我没有找到任何示例,而且我是 c++ 新手,有很多示例如何重载对象,但没有找到如何使用字符串或宽字符数组来实现。)
delphi - 将两个字节合并为 WideChar
是否可以将两者结合起来Bytes
,WideChar
如果可以,那么如何?
例如,二进制中的字母“ē”是00010011
=19
和00000001
= 1
,或275
一起。
如何WideChar
从 Delphi 中的两个字节中获取?
delphi - Delphi中不兼容的char和widechar
我有一个奇怪的问题。
我正在使用 Delphi 2007 并使用-r
开关运行它。在我的电脑上一切正常。当我将代码传输到另一台计算机时,出现错误:
不兼容的类型 char 和 widechar。
也许我应该改变一些选项。
产生问题的函数:
java-native-interface - 如何使用 JNI 将 java 字符串转换为宽字符串
几个月前,我编写了一个使用 JNI 封装 C API 的 Java API。C API 使用 char 字符串,我使用 GetStringUTFChars 从 Java 字符串创建 C 字符串。
我忽略了思考非 ASCII 字符可能出现的问题。
从那时起,C API 的创建者为他的每个需要或返回 wchar_t 字符串的 C 函数创建了宽字符等效项。我想更新我的 Java API 以使用这些宽字符函数并克服我在使用非 ASCII 字符时遇到的问题。
研究了 JNI 文档后,我对使用 GetStringChars 或 GetStringRegion 方法的相对优点感到有些困惑。
我知道 wchar_t 字符的大小在 Windows 和 Linux 之间有所不同,并且不确定创建 C 字符串的最有效方法(然后将它们转换回 Java 字符串)。
这是我目前拥有的代码,我认为它创建了一个每个字符两个字节的字符串:
但是,当 wchar_t 的大小与 jchar 不同时,这将需要修改。
c - wcscoll函数,被标记为中毒了,怎么办?
在 Mac Os X 10.6.8 上,在解决此问题之前,我无法使用标准库中的 wchar_t 函数编译代码。
wcscoll 函数以及其他一些函数:
inttypes.h :#pragma GCC 毒 wcstoimax wcstoumax stdlib.h :#pragma GCC 毒 mbstowcs mbtowc wcstombs wctomb wchar.h :#pragma GCC 毒 fgetws fputwc fputws fwprintf fwscanf mbrtowc mbsnrtowcs >mbsrtowcs putwc putwchar swprintfscanf >swvwf vsvprintfscanf vprint wcrtomb wcscat wcschr wcscmp wcscoll wcscpy wcscspn wcsftime wcsftime wcslcat >wcslcpy wcslen wcsncat wcsncmp wcsncpy wcsnrtombs wcspbrk wcsrchr wcsrtombs wcsspn wcsstr >wcstod wcstof wcstok wcstol wcstold wcstoll wcstoul wcstoull wcswidth wcsxfrm wcwidth >wmemchr wmemcmp wmemcpy wmemmove wmemset wprintf wscanf
我该如何解决这个问题?我有点不愿意弄乱标准库。但我想我也许可以编译 GNU C 库,如果 Apple 没有修复它?或者在处理宽字符(Utf-8)的库中是否有任何其他合适的替代方案。
我正在移植一些古老的东西,所以我真的需要使用 ncurses,为了使用 ncurses,我需要宽字符!:)
编辑:据我所知,标准的包含路径应该是 /usr/include。我已经浏览了我拥有的 SDK 的包含目录,并且通过头文件的 grep 显示了相同的毒编译指示,来自http://opensource.apple.com/tarballs/Libc/的最新 tarball 也是如此
编辑++
事后看来,这些编译指示的存在是有原因的,我一直在寻找替代方案,所以现在,我正在尝试构建刚刚下载的 glibc,并且我检查了没有任何“GCC 毒”编译指示的标头。
在 glibc 的配置文件中阅读了一下,我想这不是一个简单的选择。我想我必须剖析一些适用于 utf-8 并在 mac osX 上使用 ncurses 的东西来弄清楚如何。
可能是我忽略了一个简单的解决方案。但是 ncurses 依赖于 7 位 ascii,这是我的问题。我的目标是在使用 ncurses 时呈现 utf-8 语言特定的字符。我需要能够排序,因为格式是带有索引的“专有”,分叉出系统调用来排序记录是没有选择的。我还需要能够知道某种字符串中有多少个代码点,用于使用 ncurses 从显示器中进行字段编辑、插入和删除字符。
谢谢!
c++ - 为什么 wcslen 在 argv[1] 上计算 1 个额外字符?
argv[1]
似乎比输入的内容多返回 1 个字符。 argv[2]
是正确的。
我正在使用 mingw32 进行编译。我用gcc myprog.c
.
为什么会这样?
c++ - 在调试模式下运行时缓冲区溢出
在调试模式下运行我们的游戏时,我遇到缓冲区溢出崩溃 - 调用堆栈是香蕉(看起来它卡在递归循环中)但是我将崩溃跟踪到以下函数:
以下列方式调用:
我似乎无法弄清楚是什么导致了这一切......任何线索?
c++ - 宽流和字符
我看到允许将 a 写入char
a std::wostream
(例如std::wcout<<"looooool";
)。
如何char
更改为wchar
(如果发生这种情况)?
c++ - C++ Unicode 问题
我在处理 unicode 转换时遇到了一些麻烦。
以下代码将其输出到我的文本文件中。你好??O
但正如您所见,输出只是测试变量的 unicode 转换。这怎么可能?