PHP ile GET parametrelerinde unicode değerlerinin kullanılması

3 Cevap php

Benim sunucuda aşağıdaki test script var:

<?php
echo "Test is: " . $_GET['test'];
?>

I example.com/script.php?test=ɿ (baytlı karakter olmak ɿ) gibi bir url ile ararsanız, çıkan sayfası bu gibi görünüyor:

Testi: É ¿

Ben böyle o bir mysql veritabanına kaydetmek gibi $ _GET ['deneme'], in değeri ile bir şey yapmak için çalışırsanız, ben aynı sorun var. PHP Bu değer doğru işleyecek Ne yapmam gerekiyor?

3 Cevap

Eğer HTTP yanıtı UTF-8 kullanıcı ajan söyledi mi?

header ('Content-type: text/html; charset=utf-8');

Ayrıca HTML biçimlendirme, örneğin, aynı zamanda kodlama beyan sağlamak isteyebilirsiniz

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Lütfen veritabanı için, tablolar ve UTF-8 için kurmak mysql istemci ayarları nelerdir? Bir mysql komut satırı istemcisi kullanarak veritabanını kontrol ederseniz, terminal çevre UTF-8 beklemek kadar ayarlanır?

Özetle, her adımı kontrol etmelisiniz: ham veri kaynağından, dokunduğu kodu saklayın depolama sistemleri ve araçları görüntülemek ve hata ayıklama için kullanın.

UTF-8 all the way through…


Follow the steps, specifically:

  • SET NAMES 'utf8' üzerine MySQL DB bağlantısı
  • <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> HTML'nize

Yüksek utf8 karakter cotains tarayıcınızda url yapıştırarak, tarayıcı, RFC 3986 ile uyumlu bir çokbaytlı içine utf8 karakter recodesrc olacak ve php utf8 karakter almazsınız.

Url çağırır sayfa utf8 kodlanmış ise ANCAK, php, doğru almak ve url ekran utf8 karakter olacaktır.

Bu gibi test için php arama deneyin:

<iframe src="example.com/script.php?test=ɿ" height="100" width="100" border="1"></iframe>