2016-01-14 22 views
6

Ben basit bir HTML form var yükleyin. tarayıcının UTF-8 için herhangi bir dosyayı dönüştürmek ve sunucuya bu şekilde göndermek yapmak mümkün mü?karakter kodlama

Ben çeşitli seçenekler denenmiş ve ngrep ile tarayıcı tarafından gönderilen verileri takip, başlangıçta ISO-8859-2 kaydedilmiş bir dosyayı yükledikten sonra: -> Bu bazı

  1. multipart/form-data; charset=utf-8 için enctype ayarlama nedeni tarayıcı Content-Type: application/x-www-form-urlencoded gönderme sonuçlandı - benim belirtilen enctype kullanmak için başarısız gibi.

  2. Ekleme form Bir özelik: accept-charset="UTF-8" -> Efekt yok. > Etkisiz - <head> yılında <meta charset="UTF-8"> kullanma

  3. .

Dosya yükleme işleminin bu şekilde çalışması gerektiğini düşünüyorum. Sunucumun farklı kodlamaları önemsemesini istemiyorum, veriyi standart olarak almasını istemiyorum. Ancak, mümkün değilse, tarayıcıdan sunucuya kodlama hakkında bilgi gönderebilir miyim? Herhangi bir tavsiye için minnettarım, teşekkürler.

cevap

0

Sen içeriği (bayt) ve kodlama (bayt yorumlama) arasında ayrım yapmak gerekir. html dosyası yükleme işlevi sadece bayt aktarır ve metin dosyaları ile sınırlıdır değil ama aynı zamanda ikilileri transfer yapabiliyor beri yorumlanması önemsemiyor. Sunucunuz baytları aldığı için, tümceyi ele almak zorundadır. Sunucu bu işleyebilir böylece

enctype=multipart/form-data; charset=utf-8 sadece charset hakkında başlık bilgilerini ekler. Dosyayı yüklemeden önce veya sonra herhangi bir dönüşümü tetikler.