UTF-8 POST değişkenler Script Php çağırıyor

0 Cevap php

AS3 dokümantasyon AS3 Strings UTF-16 formatında olduğunu söylüyor.

Kullanıcı bazı verileri yazabilirsiniz Flash Klip üzerinde bir metin kutusu vardır.

Bir düğme tıklandığında, ben bu veri bir php komut dosyası gönderilmesini istiyorum.

Ben her şeyi kurdunuz, ama PHP komut dosyası UTF-16 formatında veriyi alır gibi görünüyor. (Utf-8) veritabanındaki veriler veriler doğru kodlama gönderildi olmamıştır, yani (özel karakterler kullanılır) bazı tanınmayan karakterler gösterir.

var variables:URLVariables=new URLVariables;

var varSend:URLRequest=new URLRequest("http://website.com/systematic/accept.php");
varSend.method=URLRequestMethod.POST;
varSend.data=variables;

var varLoader:URLLoader=new URLLoader;
varLoader.dataFormat=URLLoaderDataFormat.VARIABLES;
varLoader.addEventListener(Event.COMPLETE, completeHandler);

Butonu tıklandığında gönderdiğinizde, aşağıdaki işleyici idam olur.

function sendData(event:MouseEvent) : void {
    // i guess here is the problem (tbName.text is UTF-16)
    variables.name = tbName.text;

    varLoader.load(varSend);
}

PHP komut dosyası UTF-8 biçiminde verileri alır, böylece veri göndermek için herhangi bir yolu var mı?

(PHP script $ _POST ['isim'] kullanarak değerini almak olduğunu).


EDIT (yararlı önerilerden sonra):

I iconv () kullanarak UTF-8 için POST değişkeni dönüştürmek için denedim ama sadece soru işaretleri olsun. Ben php UTF-16 formatında dize var varsayarak yanlış olduğu anlamına gelebilir. Öyle görünüyor. Ama şimdi ben bu nasıl düzeltmek için hiçbir fikrim yok.

Söz konusu karakterler Hırvat karakterler (C, C, S, Z ve DJ), tüm Windows-1250 kodlama vardır. Ben elle phpMyAdmin girdisini düzenleyin ve bu karakterlerden herhangi girerseniz, her şey harika çalışıyor. Ben flaş aracılığıyla yapıyorum ama eğer bu işe yaramazsa.

Başka bir garip bir şey, ben iconv kaldırıldı ve başında ve şimdi olmayan tek özel karakterler ilk Hırvat kadar gösterilen almak gibi her şeyi koyduk. Örneğin, ben "ačasdfadfa" yazarsanız, sadece "bir" veritabanında int depolanır.


Another edit:

Ben şimdi (Aşağıdaki kodu) bir şey ASCII içine hırvat karakter geçmek ve daha sonra PHP tarafında vb C, C, onları geri dönmek için çalıştık. Flaş Açıkçası ileri Bu doğru (özel karakterler artık orada beri), ancak PHP doğru geri dizeye karakter dönüştürmek değildir. Bu ne yaptığımı olduğunu.

http://pastebin.com/qjVcrNuV

bu yüzden PHP ile bir şey ya da nasıl veritabanına veri depolayan sanırım. PHP dosyası kendisi UTF-8 kodlanmış.

0 Cevap