jquery和php utf-8编码解码
嗨,在我的项目中,我正在制作一个土耳其字母检查脚本。 如果用户输入的密钥不是土耳其语字母,则发出警告 这是我的jquery代码jquery和php utf-8编码解码,php,jquery,Php,Jquery,嗨,在我的项目中,我正在制作一个土耳其字母检查脚本。 如果用户输入的密钥不是土耳其语字母,则发出警告 这是我的jquery代码 $( "#singup_surname" ).keyup(function() { var singup_surname = $( "#singup_surname" ).val().trim(); var request = $.ajax({ url: "check.php", type: "POST", encoding:"UT
$( "#singup_surname" ).keyup(function() {
var singup_surname = $( "#singup_surname" ).val().trim();
var request = $.ajax({
url: "check.php",
type: "POST",
encoding:"UTF-8",
data: { singup_surname_only:singup_surname},
dataType: "html"
});
request.done(function( msg ) {
msg=msg.trim();
if(msg=="ok"){
$('#singup_surname').removeClass('wrongField');
$('#singup_surname').addClass('trueField');
}else if(msg=="no"){
$('#singup_surname').removeClass('trueField')
$('#singup_surname').addClass('wrongField')
}else {
alert("database connection error");
}
});
});
例如,如果用户像这样输入şletter post send
singup_surname_only=%C5%9F
在php方面,这是我的代码
$singup_surname_only=$_POST['singup_surname_only'];
if (isset($singup_surname_only)) {
$singup_surname_only=urldecode($singup_surname_only);
$tk = array('A','B','C','Ç','D','E','F','G','Ğ','H','I','İ','J','K','L','M','N','O','Ö','P','R','S','Ş','T','U','Ü','V','Y','Z','a', 'b', 'c','ç', 'd', 'e', 'f', 'g','ğ', 'h', 'i','ı', 'j', 'k', 'l', 'm',
'n', 'o','ö', 'p', 'r', 's','ş','t','u','ü', 'v','y','z' ) ;
$tk=array("%C5%9F","ö");
$arr1 = str_split($singup_surname_only);
$letterCount = count($arr1);
$i=1;
while ($i<=$letterCount) {
if (in_array($arr1["$i"], $tk)) {
}else echo 'no';
$i++;
}
}
我在数组中看到的php端的字母“ş”类似于这样的“ş”
如何解决此问题非常感谢这就是如何检查字符串$str中是否只有土耳其字符的方法:
变成像这样的“Å”-你怎么知道它变成了Å?我将这些代码添加到php端,以查看print_r$tk发生了什么;回响打印\u r$arr1;回响打印r$letterCount;回响打印r$i;回响当你这样做的时候,页面编码是?我在firebug net post响应中看到了它。firebug在响应显示中使用了什么编码?你确定不是吗?
$tkReg = sprintf('~^[%s]*$~u', join('', $tk));
$thereAreOnlyTurkishCharacters = preg_match($tkReg, $str) === 1;
var_dump($thereAreOnlyTurkishCharacters);