2016-04-10 28 views
0

İnternet'in bazı versiyonları (11 ve diğer bazıları gibi) yanlış değer veriyor ????????? unicode değişkeni için. internet explorer dışında kod çalışır. Bu dosya kodlamasını sadece UTF-8 olarak kaydettim. Biri bana yardım edebilir mi lütfen.Unicode'da PHP değişken hatası

<?php 
header('Content-Type: text/html; charset=utf-8'); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript"> 
function test(val){ 
var val; 
//alert(val); 
url=window.location.href="test.php?value="+val; 
//alert(url); 
} 
</script> 
</head> 
<body> 
<?php 
$value=""; 
if(!empty($_GET['value'])){ 
    echo $value=$_GET['value'];//this variable is the problem; 
    } 
?> 
<select style="width:180px;" onchange="test(this.value)"> 
<option value="">select</option> 
<option value="நன்றி">நன்றி</option> 
</select>     
</body> 
</html> 

cevap

4

Sanırım bu tamamen sizin hatanızdır, çünkü URL sorgu dizesinin değerine tamamen işlenmemiş bir değer ekliyorsunuz. (Tesadüfen Bu da diğer tarayıcılar neler istiyorum sen, ille anlamına gelmez sağ olduğunu yapın.)

Kullanım encodeURIComponent onu eklemeden önce değerine.


Düzenleme:

function test(val){ 
    //var val; <- removed, because makes no sense - val gets passed in as parameter already 
    window.location.href = "test.php?value=" + encodeURIComponent(val); 
} 
+0

Evet, seninki doğru çözümdür, gerçekten aracılığıyla düşünmüyordu: P – ForceMagic

+0

biraz daha açıklama yapın. daha fazla kod eklemek zorundayım. –

+0

Düzenlememe bakın lütfen. – CBroe