Проблема кодирования приложения Android - неправильно отображается ÅÄÖ - PullRequest
0 голосов
/ 21 марта 2011

Когда пользователь вводит значение «Nedskräpning» в EditTextbox, оно сохраняется как «Nedskräpning» в базе данных.Итак, я предполагаю, что эта ошибка генерируется из Android-части приложения.ОБНОВЛЕНИЕ: <- вероятно ложное предположение?</p>

 <EditText android:id="@+id/commentTextBox"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent" 
                android:layout_weight="1"/>

Java-код:

commentTextBox = (EditText) findViewById(R.id.commentTextBox);
crapport.setComment(commentTextBox.getText().toString());

Затем этот crapport сохраняется в базе данных.

Любые советы, как решить эту проблему?

ОБНОВЛЕНИЕ: Это мой веб-сервис Apache CXF:

  @Path("/crapportService/")
public class CrapportServiceImpl implements CrapportService {

    @Autowired
    private CrapportController crapportController;

    @Override
    @Path("image")
    @POST
    @Produces(MediaType.TEXT_HTML)
    public String addReport(MultipartBody multipartBody) {

        List<Attachment> attachmentList = new ArrayList<Attachment>();
        attachmentList = multipartBody.getAllAttachments();

        if (attachmentList.size() == 0){
            return "No attachments";
        }

        try {
            crapportController.processReportFromClient(attachmentList);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return "Error: FileNotFoundException";
        } catch (NullPointerException e) {
            return "Error: NullPointerException";
        } catch (IOException e) {
            return "Error: IOException";
        }

        return "Success";
    }

}

Ответы [ 2 ]

3 голосов
/ 21 марта 2011

Мне кажется, ваша база данных использует ISO-8859-15 или ISO-8859-1 в качестве кодировки, строка из Android находится в UTF-8 и, если она хранится в базе данных, старшее и младшее слова из UTF-8 «Ä» разделяются на два аналога ISO-8859-1, что делает его «Ã».

2 голосов
/ 21 марта 2011

Решил это, передав аргумент кодировки символов в создание строки. например) new String ("values", Charset.forName ("UTF-8")) в части контроллера серверного приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...