问题标签 [widestring]

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 回答
1500 浏览

java - 在 Linux 上将 wstring 转换为 jstring

我在 unix 中将 wstring 转换为 jstring 时遇到问题,因为 linux 上 wchar_t 的大小为 4 个字节(而不是像 windows 那样的 2 个字节,因此我不能使用 wchar_t 到 jchar 的转换)。

任何人都可以帮我吗?

谢谢,礼萨

0 投票
2 回答
2221 浏览

c++ - 如何处理 C++ 中的 Unicode 字符

0 投票
1 回答
6063 浏览

delphi - 为什么 Delphi DLL 可以使用 WideString 而不使用 ShareMem?

David 对另一个问题的回答显示了一个返回 WideString 的 Delphi DLL 函数。我从没想过不使用ShareMem.

我的测试DLL:

我的来电程序:

它有效,我不明白如何。我知道的约定是 Windows API 使用的约定,例如 Windows GetClassNameW

这意味着调用者提供缓冲区和最大长度。Windows DLL 以长度限制写入该缓冲区。调用者分配和释放内存。

另一种选择是 DLL 例如通过 usingLocalAlloc分配内存,而调用者通过调用LocalFree.

内存分配和释放如何与我的 DLL 示例一起使用?是否因为结果是WideStringBSTR)而发生“魔术”?为什么不使用如此方便的约定声明 Windows API?(是否有任何已知的使用这种约定的 Win32 API?)


编辑:

我用 C# 测试了 DLL。
调用SomeFunction1会导致 AV ( Attempted to read or write protected memory)。
SomeFunction2工作正常。

这是后续行动

0 投票
1 回答
2233 浏览

string - 定义:AnsiString、WideString、String、char[]、char*、BSTR、

这是对这个问题的跟进

AnsiString也是一堂课吗?和string?它是一个类?还有一个char[]

我们可以说 aWideString是双字节字符AnsiString的包装器,是单字节字符的包装器,并且char[]是单字节字符的数组吗?string不太确定它是什么...

不确定我在 Code Builder C++ 2007 中可用的不同类型的字符串类型及其可移植性。

0 投票
3 回答
1174 浏览

delphi - 如何通过索引访问 WideString 的字符?

我有以下无法编译的代码片段:

德尔福5抱怨Incompatible types

我尝试将其简化为:

哪个有效,并且:

没有。

我只能假设WideString[index]不返回 a WideChar

我试图强迫事情成为WideChars

但这也失败了:

不兼容的类型

脚注

  • 5: 德尔福 5
0 投票
1 回答
3311 浏览

string - c#:如何将 c# 字符串转换为 c++ wstring,反之亦然

c#代码-

我想将 s 作为 wstring 发送到 c++ dll。
如何在 c# 中将字符串转换为 wstring?

0 投票
1 回答
316 浏览

c - 一旦我在 C++ 中使用宽字符串,程序就会崩溃

(由于我还没有足够的声望来回答我自己的问题,所以我先把它放在这里。我发布它时并没有想清楚。对我来说是凌晨 3 点,我没想到在别处寻找问题。

我正在制作另一个函数来在 lua 中动态添加一个对象,该对象有自己的消息要显示。这就是给我带来问题的那个,所以一旦我静态加载它就可以了。这确实是另一部分代码的问题。)

我在这里遇到了一个很奇怪的问题

我的 C++ 代码使用 lua(没有 boost 库),因此它可以从 lua 检索变量等,并且 lua 可以调用已注册的 C 函数。

现在我有两个版本的函数,一个用于 ANSI,另一个用于 Unicode(中文)。ANSI 版本似乎工作正常,并且不会中断。问题出在 unicode 版本上。

我设法解密了 ANSI 格式的 unicode,所以这一切都很好。现在的问题是它可以正常工作几次,但是当我多次重复相同的 lua 代码时,程序会崩溃。我仍然无法判断这是 lua 堆栈的问题还是只是内存的问题。

这是代码首先给出代码,这就是我将其缩小到的范围

所以经过几个小时的 printf 和测试,我发现 wstring msg = wstring(txt) 是打破它的行。

我通过使用widestringstream解决了这个问题,至少在这里不会崩溃(尽管我仍然必须修复其他函数才能使用widestringstream才能工作,可能)

但是,一旦我添加了类似 wstring msg = buf.str() //buf 作为流的行,就会出现同样的问题。

所以我想知道,发生这种情况的原因可能是什么?当我在 Code::Blocks 中打开调试模式时它工作正常,但显然这不是一个好的解决方案,我在 Windows 中,所以我也不能使用 Valgrind,有什么建议吗?

提前致谢

0 投票
1 回答
124 浏览

outputstream - 如何将 int 打印到 std::wcerr?

operator<<如果我的对象需要打印 astd::wstring以及 ints 等,我该如何编写输出?

换句话说:int如果我通过 a ,我如何打印 s 和其他原始数据类型wcerr?我需要boost::lexical_cast<std::wstring>或类似的吗?

0 投票
1 回答
5131 浏览

winapi - C++ Builder XE2:如何将字符串转换为 wchar_t*

我有 SHBrowseForFolder 弹出并工作正常,但我想设置标题。我知道它必须是 wchar_t* 并且当我使用像 (wchar_t*)L"My Title" 这样的 const 时,标题显示正确。

但是如果我尝试使用字符串值,我只会得到第一个字母“M”,就像宽字符串再次转换为新的宽字符串一样,用 nul 填充每个字符。

UnicodeString的所有转换函数的文档c_str()t_str()w_str()返回一个wchar_t*但声明显示WideChar*

任何想法如何使此代码与字符串一起工作?

0 投票
1 回答
275 浏览

delphi - 如何测试我的 WideReplace 功能?

操作系统:匈牙利语 Windows (Windows 1250)

在 Delphi 6 Prof 下没有WideStringPos, WideStringCopy, WideStringReplace...

但是在基于 XML 的项目中,我需要使用它们。

因为我试图编写“类似”这些函数。

但我不确定他们是否按照我的意愿工作......

因为 Delphi 将 Wide 转换为 Ansi 并在后台反转,所以我不能确定我的代码是否安全不受这些副作用的影响...... :-)

代码非常原始 - 我需要快速解决方案......

我有两个问题:

  1. 您是否看到任何肯定会产生不良结果的代码(默默地将 Wide 转换为 Ansi,并导致字符丢失)?

  2. 你知道我可以测试这段代码的一些角色吗?

例如, chr(XXX) 当我的转换器保持宽规则时剩余的内容,但如果我编写错误的代码就会丢失......

感谢您将写的每一个信息...