Если имя файла содержит турецкие символы (ş, ı, ü, ü, ö, ğ), файл не загружается на веб-сервер. Загрузка на веб-сервер осуществляется на странице php. Там нет никаких проблем. Он загружает имена файлов, которые не содержат турецких символов (английские буквы). Как мне решить эту проблему?
private String uploadFile()
{
String responseString = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Config.FILE_UPLOAD_URL);
try
{
AndroidMultiPartEntity entity = new AndroidMultiPartEntity(new ProgressListener() {
@Override
public void transferred(long num) {
publishProgress((int) ((num / (float) totalSize) * 100));
} });
File kaynakDosya = new File(filePath);
entity.addPart("dosya", new FileBody(kaynakDosya));
entity.addPart("islem", new StringBody(GlobalVeri.IslemFotoVideoDosya));
totalSize = entity.getContentLength();
httppost.setEntity(entity);
HttpResponse response = httpclient.execute(httppost);
HttpEntity r_entity = response.getEntity();
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
responseString = EntityUtils.toString(r_entity);
} else {
responseString = "Bir hata oluştu! Http Durum Kodu: " + statusCode;
}
}
catch (ClientProtocolException e) {
responseString = e.toString();
}
catch (IOException e) {
responseString = e.toString();
}
return responseString;
}
Я полагаю, вам не хватает кодировки UTF-8. Как StringBody
поместите текст, который вы передаете, как первый аргумент с этими специальными символами, и убедитесь, что вы говорите, что это utf-8 во втором аргументе. замещать
entity.addPart("islem", new StringBody(GlobalVeri.IslemFotoVideoDosya));
с
entity.addPart("islem", new StringBody(GlobalVeri.IslemFotoVideoDosya, Charset.forName(HTTP.UTF_8))));
Других решений пока нет …