Problemer med encoding?
Danske tegn som åæø bliver til ? tegn. Jeg forstår bare ikke hvorfor?Jeg har forsøgt at sætte encoding til iso-8859-1 på request, men uden held. Jeg har brugt Commons FileUpload.
Jeg gør således:
Jeg har en form:
<form action="pressUploadSave.jsp" method="post" enctype="multipart/form-data">
<table>
<tr>
<td valign='top'>
<b>Overskrift1</b><br />
<input type="text" name="overskrift1" size="70"><br />
</td>
</tr>
<tr>
<td valign='top'>
<b>Overskrift2</b><br />
<textarea cols="55" rows="5" name='overskrift2'></textarea><br />
</td>
</tr>
<tr>
<td align="left">
<b>Vælg PDF file :</b></td>
</tr>
<tr>
<td align="left">
<input type="file" name="uploadfile" value="Find fil" size="50">
</td>
</tr>
<tr>
<td><input type="submit" value="Opret" name="Opret"></td>
</tr>
</table>
</form>
Der kalder pressUploadSave.jsp som indeholder:
new FileHandler().saveFile(request);
response.sendRedirect("pressList.jsp");
Selve saveFile metoden i FileHandler klassen seer således ud:
public void saveFile(HttpServletRequest request){
String overskrift1 = null;
String overskrift2 = null;
try{
request.setCharacterEncoding("ISO-8859-1");
DiskFileUpload upload = new DiskFileUpload();
List fileList = upload.parseRequest(request);
int fileCount = fileList.size();
for(int i=0; i<fileCount; i++) {
FileItem file = (FileItem)fileList.get(i);
if(file.getFieldName().equals("overskrift1")) {
overskrift1 = file.getString();
}
if(file.getFieldName().equals("overskrift2")) {
overskrift2 = file.getString();
}
if(file.getFieldName().equals("uploadfile")) {
String fileName = file.getName();
fileName = fileName.toLowerCase();
if(!fileName.endsWith(FILE_EXTENSION)){
log.error("The file has wrong format");
} else{
int key = DBPress.createPress(overskrift1,overskrift2);
file.write(new File(PATH+key+FILE_EXTENSION));
}
}
}
}catch (Exception e){
log.error("Error in saveFile",e);
}
}
Har nogen et forslag til hvordan jeg får løst det her?
