问题标签 [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.

0 投票
1 回答
259 浏览

c++ - 是否可以重载 wcout << 运算符以用 WriteConsoleW 替换它?

问题是 MinGW 编译的程序在通过 wcout 在控制台上打印非 ascii 字符时存在问题,输出可能显示来自不同代码页的字符或完全空白。但是winapiWriteConsoleW完美运行。所以我问是否有可能改变 << 运算符的行为,这样它就可以调用 winapi 方法。

(我没有找到任何示例,而且我是 c++ 新手,有很多示例如何重载对象,但没有找到如何使用字符串或宽字符数组来实现。)

0 投票
2 回答
778 浏览

perl - perl中的字符串插值

0 投票
2 回答
875 浏览

delphi - 将两个字节合并为 WideChar

是否可以将两者结合起来BytesWideChar如果可以,那么如何?
例如,二进制中的字母“ē”是00010011=1900000001= 1,或275一起。


如何WideChar从 Delphi 中的两个字节中获取?

0 投票
2 回答
2097 浏览

delphi - Delphi中不兼容的char和widechar

我有一个奇怪的问题。

我正在使用 Delphi 2007 并使用-r开关运行它。在我的电脑上一切正常。当我将代码传输到另一台计算机时,出现错误:

不兼容的类型 char 和 widechar。

也许我应该改变一些选项。

产生问题的函数:

0 投票
1 回答
3476 浏览

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 不同时,这将需要修改。

0 投票
1 回答
357 浏览

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 从显示器中进行字段编辑、插入和删除字符。

谢谢!

0 投票
2 回答
241 浏览

c++ - 为什么 wcslen 在 argv[1] 上计算 1 个额外字符?

argv[1]似乎比输入的内容多返回 1 个字符。 argv[2]是正确的。

我正在使用 mingw32 进行编译。我用gcc myprog.c.

为什么会这样?

0 投票
1 回答
227 浏览

c++ - 在调试模式下运行时缓冲区溢出

在调试模式下运行我们的游戏时,我遇到缓冲区溢出崩溃 - 调用堆栈是香蕉(看起来它卡在递归循环中)但是我将崩溃跟踪到以下函数:

以下列方式调用:

我似乎无法弄清楚是什么导致了这一切......任何线索?

0 投票
1 回答
595 浏览

c++ - 宽流和字符

我看到允许将 a 写入chara std::wostream(例如std::wcout<<"looooool";)。

如何char更改为wchar(如果发生这种情况)?

0 投票
2 回答
144 浏览

c++ - C++ Unicode 问题

我在处理 unicode 转换时遇到了一些麻烦。

以下代码将其输出到我的文本文件中。你好??O

但正如您所见,输出只是测试变量的 unicode 转换。这怎么可能?