안드로이드 개발 질문/답변
(글 수 45,052)
private void DoFileUpload(String filePath) throws IOException {
String EditEntry = mEditEntry.getText().toString();
EditEntry = URLEncoder.encode(new String(EditEntry.getBytes("UTF-8")));
if (EditEntry.length() > 0) {
if (filePath != null) {
vv.pause();
Log.d("Test", "file path = " + filePath);
Resources res = getResources();
HttpFileUpload(res.getString(R.string.domain), "", filePath, EditEntry);
} else {
Toast.makeText(Main.this, "업로드 할 아무런 자료가 없습니다. 영상을 선택해주세요.",
Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(Main.this, "텍스트를 입력해주세요.", Toast.LENGTH_SHORT)
.show();
}
}
private void HttpFileUpload(String urlString, String params,
String fileName, String text) {
try {
gg2.setVisibility(View.INVISIBLE);
mFileInputStream = new FileInputStream(fileName);
connectUrl = new URL("urlString);
Log.d("Test", "mFileInputStream is " + mFileInputStream);
// open connection
HttpURLConnection conn = (HttpURLConnection) connectUrl
.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type",
"multipart/form-data;boundary=" + boundary);
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
// 데이타 보내기
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"text\""
+ lineEnd);
dos.writeBytes(lineEnd);
dos.writeBytes(text); //한글이 %ED%98%B8 로 나옵니다.
dos.writeBytes(lineEnd);
name = mEditName.getText().toString();
name = URLEncoder.encode(new String(name.getBytes("UTF-8")));
dos.writeBytes(name); // //한글이 %ED%98%B8 로 나옵니다.
dos.writeBytes(lineEnd);
dos.writeBytes(lineEnd);
웹서버로 보내고 있습니다. 한글이 %ED%98%B8 로 나와서 서버에서도 똑같이 나오는데요..
파일부터 이클립스 서버캐릭터 utf-8로 했는데.. 어떻게 해결해야 할까요?
도와주세요~




URLDecoder.decode() 호출하셔서 변환하시면 됩니다.