用c ++打印阿拉伯字符串

时间:2013-03-18 20:44:19

标签: c++

我是C ++的初学者

我想使用Borland C在C ++中打印阿拉伯语,但我失败了,我也尝试将文件保存为UTF-8,但它没有帮助。

所以,如果任何人对此有所了解或有什么问题或如何配置编译器打印阿拉伯语,请帮助我。

#include<iostram.h>
#include<conio.h>
void main()
{
   clrscr();
   char x [5] = {'ا','ح','م','د'};
   for(int i = 0; i< 5; i++)
       cout << x[i];
   getche();
}

3 个答案:

答案 0 :(得分:4)

首先,您假设您的源代码可以包含阿拉伯字符。这是一个非常糟糕的主意,并且取决于编译器在编辑器编写的同一代码页中解释源文件的假设。

在Windows C ++中处理阿拉伯语或其他任意Unicode的最安全方法是使用_UNICODE进行编译,声明wchar_t(和朋友)的变量,并使用'\u6041'等Unicode常量作为阿拉伯字符。如果您必须使用'char'进行操作,则必须在正确的代码页中为您的阿拉伯字符提供多字节\x序列,并处理以下事实:单个char无法保存UTF-8中的阿拉伯字符。

最后,既然您正在使用cout,那么只有当您的DOS框的当前代码页是阿拉伯语代码页时,才会显示阿拉伯语。

答案 1 :(得分:3)

如果您的BorlandC ++在DOS下

默认情况下,您没有任何字符集可将其显示为阿拉伯语。但是那些时候,有些应用程序会将扩展的ASCII字符更改为其他语言,例如阿拉伯语,波斯语......。

你应该做的步骤:

  • 如果您使用的是Windows Vista / 7 +,首先应使用DosBox(需要全屏模式)

  • 您必须更改内存中的默认ASCII字体表

  • vegaf.com这样定义波斯语/阿拉伯语alpha-beta

注意:此系统未定义UTF-8

答案 2 :(得分:-1)

C ++ 11是唯一可以为UTF-8(和其他UTF字符集)编码提供本机支持的C ++标准。

在预C ++ 11版本中,如果您需要this one等UTF-8支持,则可以使用第三方库。