1
有了這個代碼,當我填寫漢字
成input元素與text
類型和名稱text
,按提交按鈕,它的展示mb_strlen : 16
和strlen : 16
爲什麼從後期值mb_strlen和strlen是不正確的PHP?
<?php
include("connect.php");
if(isset($_POST["submit"]))
{
$string = mysqli_real_escape_string($db_mysqli,$_POST['text']);
//$string = "漢字";
echo $string."<BR>";
echo "mb_strlen : ".mb_strlen($string, 'utf-8')."<BR>";
echo "strlen : ".strlen($string)."<BR>";
if(strlen($string) != mb_strlen($string, 'utf-8'))
{
echo "Please enter English words only:(";
}
else
{
echo "OK, English Detected!";
}
}
?>
<form method="post" ENCTYPE = "multipart/form-data">
<input type="text" name="text">
<input type="submit" name="submit" value="OK" id="button-blue" style=" float: none; ">
</form>
但是,當使用此代碼,它會顯示mb_strlen : 2
和strlen : 6
我想知道,爲什麼上面的代碼值不正確,如何申請?
<?php
$string = "漢字";
echo $string."<BR>";
echo "mb_strlen : ".mb_strlen($string, 'utf-8')."<BR>";
echo "strlen : ".strlen($string)."<BR>";
if(strlen($string) != mb_strlen($string, 'utf-8'))
{
echo "Please enter English words only:(";
}
else
{
echo "OK, English Detected!";
}
?>
只有我有提示:在第二個例子中,PHP文件編碼起作用,因爲你直接在文件中寫入「漢字」。 – JustOnUnderMillions
並在這裏閱讀標記的答案http://stackoverflow.com/questions/8250709/mb-strlen-strlen-dont-return-correct-values-from-an-ajax-call-to-php – JustOnUnderMillions
聲音就像發送的數據您的客戶端在服務器上未被正確處理爲unicode。 – arkascha