问题标签 [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 投票
4 回答
313 浏览

c - 检查文件是否存在于c中

  1. prgchDirPath 是字符指针。但预期的是 LPCWSTR。如何改变这个?
  2. prgchDirPath 是目录路径。文件不存在。但我想确定目录/路径是否存在。下面的 API 可以帮助我吗?如果是,如何?

    /li>

我想检查目录路径是否存在。请提供一个示例代码。谢谢你。

0 投票
1 回答
747 浏览

c++ - 箭头键作为宽字符

我正在尝试确定是否可以使用箭头键并将它们转换为宽字符。我将 conio.h 用于它的 getch() 函数,我只是喜欢它与类似函数相比的工作方式,并且必须调用它两次才能检索箭头键。

按下箭头键时返回 0xE0 (-32) 作为第一个字符,然后 {Left = 'K', Up = 'H', Right = 'M', Down = 'P'}

所以我一直在尝试找到一种方法将两个角色合并为一个。这是我想出的最接近的东西。但是,功能键不能使用它,无论按下功能键,它总是返回相同的值。{F1-12 = 0, Arrows = 224} 我拿出了可信赖的 windows 计算器,能够确定 224 相当于二进制的 -32。我只是把它缩小到一个字节并使用十进制系统,然后是 100+124,它是 = -32。

所以也许有人可以帮我弄清楚为什么转换只考虑数组中的第一个字符。我肯定做错了什么。说得够多了,如果是这样的话,对不起,如果是这样的话,现在这里是代码。

编辑:

我找到了一种使用联合来组合 2 个字节的方法。我发这个的时候还不知道工会是什么。联合允许我为两种不同的数据类型使用相同的内存空间。它是如何工作的 - http://www.cplusplus.com/doc/tutorial/other_data_types/

0 投票
2 回答
321 浏览

c - 将当前语言环境编码中的一个宽字符从标准输入回显到标准输出

下面的简单代码应该从标准输入读取一个宽字符并将其回显到标准输出,除了它SIGSEGViconv()调用时死亡。问题是——代码有什么问题?

更新:根据@gsg 的回答进行以下更新后:

该代码不再抛出 SIGSEGV,而是out == L'\n'针对任何非 ASCII 输入。

0 投票
3 回答
626 浏览

c - 无法将标准输出置于宽字符模式

在我的系统上,一个非常普通的 Ubuntu 13.10,尽管 LC_ 环境变量设置为 en_US.UTF-8,但我使用的任何工具始终可以正确处理法语重音字符“éèàçù...”。特别是像 grep, cat, ... 这样的命令行实用程序总是可以顺利读取和打印这些字符。

尽管有这些评论,但像这样的小程序

当用户输入“é”时失败。

从手册页和大量谷歌搜索来看,没有标准的方法可以关闭标准输出,然后重新打开它。从 man fwide() 开始,如果 stdout 处于字节模式,我不能将它传递给宽字符模式,除非关闭它并重新打开它......因此我不能使用 getwchar() 和 wprintf()。

我不敢相信像 cat、grep 等每一个实用程序都重新实现了一种管理宽字符的方法,但根据我的研究,我看不到其他方法。

是我的系统有问题吗?我看不出每个实用程序如何完美运行。请问我错过了什么?

0 投票
1 回答
55 浏览

c - 哪些宽字符被转换为空多字节?

根据 wcstombs 的参考资料, wcstombs 将翻译宽字符“直到宽字符翻译成空字符”。

那么什么宽字符被翻译成空多字节呢?它是一个特定的字符吗?或者任何超出给定范围的字符?

0 投票
0 回答
556 浏览

c - 为什么不能打印出用 Shift-JIS 编码的字符?

:の = (Shift-JIS) 0x82 0xCC

它打印出来很奇怪:(只有三个字符和 \n 被完全忽略了!!)

为什么 A 和 B 都不能打印出用 Shift-JIS 编码的字符?

0 投票
0 回答
85 浏览

c++ - 我想在我的程序中使用 Wide Char,但大多数 XML Parser 不支持 Wide Char

我正在 Windows 上开发一个程序,我正在使用宽字符。而且我没有使用 ATL/MFC,只是使用纯标准 C++。现在我需要一个 XML 解析器。我尝试了 tinyXml,但它不支持宽字符。我知道 MSXml 支持宽字符,但我不想使用它,因为它使用 COM 并且有点复杂。我担心如果用户的操作系统没有安装 MSXML 服务怎么办。知道我该怎么做吗?新的 XML 解析器?

0 投票
1 回答
191 浏览

c++ - 函数的大小参数

我看到很多函数需要你为输出的字符串设置一个大小。

GetComputerNameW需要:

RegSetValueExW需要:

GetWindowTextW需要:

GetModuleBaseNameW需要:

我的问题是,如何区分大小设置?字符串始终定义为 WCHAR 并且设置的大小差异很大。

0 投票
1 回答
2116 浏览

excel - BCP queryout -w 生成错误的 CSV 文件

我正在尝试使用 BCP 生成 CSV 文件。我的问题是我有一些 NVARCHAR 列,所以我必须将参数 -w 用于 bcp 实用程序。因此,生成的 CSV 文件在 EXCEL 中的单个列中打开。如果我创建一个新的文本文件,则复制生成的 CSV 的内容并粘贴到新文件中,然后将其类型更改为 CSV,它可以工作并打开分布在不同列中的内容。有人见过吗?

0 投票
1 回答
4020 浏览

string - 从 System::String ^ 到 const wchar_t * 的字符串转换

我正在尝试使用字符串参数打开文件,但是出现以下错误:

你如何转换System::String ^const wchar_t *?