如何在HTML textarea中启用非英文字符的输入?

时间:2014-11-23 13:24:58

标签: javascript html unicode fonts arabic

我在网站上安装了阿拉伯语网页字体。但是当我在Textarea中输入任何内容时,我会看到英文字符。当我从其他网站复制阿拉伯字符并粘贴到textarea时,它们看起来很完美。 如何直接从键盘插入阿拉伯字符?

谢谢, 祖拜尔

2 个答案:

答案 0 :(得分:1)

您需要更改键盘语言。根据操作系统,您必须找到如何将键盘输入从标准美国设置为阿拉伯语。在Windows 8上,您可以访问 控制面板 - &gt;更改输入法 - &gt;在Windows 7和Vista上添加语言,请查看以下How to change your keyboard layout。我也假设你已经包括在内 您的HTML文件中的<meta charset="UTF-8">

答案 1 :(得分:1)

要在 键盘上输入阿拉伯字符,您需要使用允许此类输入的键盘布局(键盘驱动程序)或使用其他一些(系统相关的)输入法。

但是,您可能意味着如何让访问者输入阿拉伯语文本,那么这个答案就没用了。

通常,您可以期望能够并且希望键入阿拉伯语文本的人正在使用可以让他们这样做的设备和软件。您不需要做任何事情,除了1)通常使用UTF-8编码页面并声明它(或者,如果不可能,至少使用accept-charset=utf-8 form元素)和2)在dir=rtl元素上设置textarea的特殊事项如果预期包含(主要)阿拉伯字母或其他从右到左书写的文本系统

然而,能够并且希望用阿拉伯字母书写的用户可能正在使用非阿拉伯语键盘布局,例如,在酒店的美国键盘。他甚至可能无法改变键盘布局。因此,您可以考虑使用以下技术之一(不互斥,但使用两者可能会造成混淆):

1)在页面上设置虚拟键盘,即一组看起来像键盘键的元素,并且当您单击其中一个时,其中显示的字符会附加到textarea。这是相对简单的,并且不需要花费太多时间来编写像基本阿拉伯字母这样的相对较小的字母。许多网站都使用这种技术。

2)设置键盘事件的处理程序,例如当用户按下通常产生字母“a”的键时,您的代码会拦截它并插入,例如阿拉伯字母'alif。由于处理键盘事件的浏览器之间的差异,这有点复杂。但是,主要问题是您无法知道所用键盘的类型。用户可能具有至少在主要位置缺少所有拉丁字母的键盘布局。此外,用户可能想要用拉丁字母键入单词,例如阿拉伯语文本中的专有名称。