jquery和php utf-8编码解码

时间:2014-06-18 03:33:08

标签: php jquery

嗨,在我的项目中,我正在制作一个土耳其字母检查脚本。 如果用户输入密钥不是土耳其信,则发出警告。

这是我的jquery代码

$( "#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");
  }

});

});

例如,如果用户输入“ş”字母发送像这样

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端变成这样的'Å'

如何解决这个问题非常感谢

1 个答案:

答案 0 :(得分:0)

这就是你如何检查字符串$str中是否只有土耳其字符:

$tkReg = sprintf('~^[%s]*$~u', join('', $tk));
$thereAreOnlyTurkishCharacters = preg_match($tkReg, $str) === 1;

var_dump($thereAreOnlyTurkishCharacters);