在javascript中显示类似问号的阿拉伯语字符
我有以下代码,这些代码接收html页面中某些字段的用户输入,并将其转换为阿拉伯语字符:在javascript中显示类似问号的阿拉伯语字符,javascript,jsp,utf-8,Javascript,Jsp,Utf 8,我有以下代码,这些代码接收html页面中某些字段的用户输入,并将其转换为阿拉伯语字符: window.onload = function KeyboardChange(){ var elements = document.querySelectorAll('.arabicChange'); for (var i = elements.length - 1; i >= 0; i--) { elements[i].onkeydown = function m
window.onload = function KeyboardChange(){
var elements = document.querySelectorAll('.arabicChange');
for (var i = elements.length - 1; i >= 0; i--) {
elements[i].onkeydown = function myFunction(e){
var keyCode = window.event ? window.event.keyCode : e.which;
if(keyCode == 66) {
this.value += "ل";
this.value +="ا";
return false;
}
//this case is for deleting one character
if (keyCode == 8){
this.value = this.value.substr(0,length(this.value)-1);
}
if (keyCode == 9){
if (this == document.forms[0].ancienNomPropriete)
document.forms[0].nomPropriete.focus();
if (this == document.forms[0].nomPropriete)
document.forms[0].dateBornage.focus();
}
else{
var KEYS_MAP= {
32 : " ",
97 : "1",
98 : "2",
99 : "3",
100: "4",
101: "5",
102: "6",
103: "7",
104: "8",
105: "9",
65 :"ض",
90 :"ص",
69 :"ث",
82 :"ق",
84 :"ف",
89 :"غ",
85 :"ع",
73 :"ه",
79 :"خ",
80 :"ح",
221 :"ج",
81 :"ش",
83 :"س",
68 :"ي",
70 :"ب",
71 :"ل",
72 :"ا",
74 :"ت",
75 :"ن",
76 :"م",
77 :"ك",
192 :"ط",
220 :"ذ",
87 :"ئ",
88 :"ء",
67 :"ؤ",
86 :"ر",
66 :"ل",
78 :"ى",
188 :"ة",
190 :"و",
191 :"ز",
223 :"ظ",
186 : "د"
};
if(keyCode && KEYS_MAP[keyCode]){
this.value += KEYS_MAP[keyCode];
return false;
}
};
return false ;
};
};
};
我从jsp页面调用此脚本。脚本不起作用,在Firefox中调试后,阿拉伯字母显示为问号。像这样:
window.onload = function KeyboardChange(){
var elements = document.querySelectorAll('.arabicChange');
for (var i = elements.length - 1; i >= 0; i--) {
elements[i].onkeydown = function myFunction(e){
var keyCode = window.event ? window.event.keyCode : e.which;
if(keyCode == 66) {
this.value += "�";
this.value +="�";
return false;
}
//this case is for deleting one character
if (keyCode == 8){
this.value = this.value.substr(0,length(this.value)-1);
}
if (keyCode == 9){
if (this == document.forms[0].ancienNomPropriete)
document.forms[0].nomPropriete.focus();
if (this == document.forms[0].nomPropriete)
document.forms[0].dateBornage.focus();
}
else{
var KEYS_MAP= {
32 : " ",
97 : "1",
98 : "2",
99 : "3",
100: "4",
101: "5",
102: "6",
103: "7",
104: "8",
105: "9",
65 :"�",
90 :"�",
69 :"�",
82 :"�",
84 :"�",
89 :"�",
85 :"�",
73 :"�",
79 :"�",
80 :"�",
221 :"�",
81 :"�",
83 :"�",
68 :"�",
70 :"�",
71 :"�",
72 :"�",
74 :"�",
75 :"�",
76 :"�",
77 :"�",
192 :"�",
220 :"�",
87 :"�",
88 :"�",
67 :"�",
86 :"�",
66 :"�",
78 :"�",
188 :"�",
190 :"�",
191 :"�",
223 :"�",
186 : "�"
};
if(keyCode && KEYS_MAP[keyCode]){
this.value += KEYS_MAP[keyCode];
return false;
}
};
return false ;
};
};
};
我的jsp页面以以下代码行开始:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%>
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>
<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic"%>
<%@ taglib prefix="nested" uri="http://struts.apache.org/tags-nested"%>
<%@ taglib uri="/WEB-INF/struts-layout.tld" prefix="layout" %>
<%@ page import="fr.improve.struts.taglib.layout.workflow.LayoutPlugin" %>
<html>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="ar-ma">
<link href="pages/style/main.css" rel="stylesheet" type="text/css">
<script language="JavaScript1.2" src="pages/KeyboardAutomaticChange.js"> </script>
为什么阿拉伯字符显示问号?尝试在HTML中添加charset=“UTF-8”
应该是这样的
<script language="JavaScript1.2" src="pages/KeyboardAutomaticChange.js" charset="UTF-8"> </script>
如果失败,那么您的javascript文件KeyboardAutomaticChange.js可能是使用非utf-8的编码保存的
我建议在文本编辑器中创建一个新的javascript文件,该文件已配置为以utf-8编码保存文件,并在该文件中复制粘贴KeyboardAutomaticChange.js的内容。在JSP页面代码顶部添加以下行
<%@ page contentType="text/html; charset=UTF-8" language="java"%>
我刚刚尝试了您的所有解决方案Huusslv,仍然是相同的问题。我在使用阿拉伯语字符时遇到了相同的问题,我创建了新文件,并跳过了以前的代码。。然后问题解决了!原谅您的代码是否实际包含this.value+=”之类的内容�";代码>?@ÁlvaroG.Vicario我编辑了我的问题:)