Unicode,_stprintf()和混合文本方向

时间:2015-10-09 09:59:31

标签: c++ winapi unicode printf bidi

我正在努力重构一些遗留的c ++代码以支持Unicode,当_stprintf与_T(“%s%s”)的格式字符串一起使用时,我遇到了问题,并且参数是:arabic text(right-在左边)然后是一些存储在字符数组中的数字。这是一段代码:

extern int var1

我在buf中获得的是حبيبيحبيبيحبيب12345678h90,但我想要的是Text数组的内容,后跟Number数组的内容。 (我尝试将其粘贴到此处,但它会以与_stprintf相同的方式自动格式化...)。

我知道原因是阿拉伯语文本是一个强字符类型,所有数字都是弱类型,我有一个相对简单的解决方案 - 重载_stprintf,检查参数字符串是否以数字开头并添加前缀+ 200E(\ u200E)控制字符。但是,我不禁想到可能有一个更简单的解决方案,我不知道如全球环境或什么?有类似的东西吗?

这些传递给SetWindowText的字符串由于阿拉伯语而以错误的顺序显示。我的主要目标是让它们在UI中正确呈现。

0 个答案:

没有答案