在c++中打印阿拉伯字符串

Printing arabic string in c++

本文关键字:阿拉伯 字符串 打印 c++      更新时间:2023-10-16

我是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();
}

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

在Windows c++中处理阿拉伯语或其他任意Unicode的最安全的方法是使用_UNICODE进行编译,声明wchar_t(及其同类)的变量,并为您的阿拉伯语字符使用Unicode常量,如'u6041'。如果你必须用'char'做事情,你将不得不在右边的代码页中为你的阿拉伯字符想出多字节的x序列,并处理单个char不能在UTF-8中保存阿拉伯字符的事实。

最后,由于您使用的是cout,因此只有当DOS框的当前代码页是阿拉伯语代码页时,才会显示阿拉伯语。

如果你的borlandc++是在DOS下

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

你应该做的步骤:

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

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

  • 类似vegaf.com的东西,它定义波斯语/阿拉伯语的alpha-beta

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

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

在c++ 11之前的版本中,如果您需要像这样的UTF-8支持,您可以简单地使用第三方库。