Попробуйте это
compile 'com.google.zxing:core:3.2.1'
compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
String text="" // Whatever you need to encode in the QR code
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
try {
BitMatrix bitMatrix = multiFormatWriter.encode(text, BarcodeFormat.QR_CODE,200,200);
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
imageView.setImageBitmap(bitmap);
} catch (WriterException e) {
e.printStackTrace();
}
ОБНОВЛЕНИЕ
, если это не поможет вам попробовать это [ 115]
У меня была та же проблема с помощью свободного-городского-населения-fileupload Apache. Я не узнал то, что вызывает проблемы особенно, потому что у меня есть кодировка UTF-8 в следующих местах: 1. Метатег HTML 2. Сформируйтесь принимать-набор-символов приписывают 3. Фильтр Tomcat по каждому запросу, который устанавливает "UTF-8" кодирование
-> Мое решение, должен был особенно преобразовать Строки из ISO-8859-1 (или независимо от того, что кодировка по умолчанию Вашей платформы) к UTF-8:
new String (s.getBytes ("iso-8859-1"), "UTF-8");
надежда, которая помогает
Редактирование: запуск с Java 8 можно также использовать следующее:
new String (s.getBytes (StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
Фильтр является искрогасящим для IE. Несколько других вещей проверить;
, Что страница кодирует и набор символов? Оба должны быть UTF-8
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
, Каков набор символов в метатеге?
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Ваша строка Подключения mysql указывает UTF-8? например,
jdbc:mysql://127.0.0.1/dbname?requireSSL=false&useUnicode=true&characterEncoding=UTF-8
Вещь фильтра и установка Tomcat для поддержки UTF-8 URIs только важны, если Вы передаете через строку запроса URL, когда Вы были бы с HTTP ДОБИРАТЬСЯ. Если Вы используете POST со строкой запроса в теле сообщения HTTP, что важно, будет типом контента запроса, и это будет до браузера, чтобы установить тип контента на UTF-8 и отправить содержание с тем кодированием.
единственный способ действительно сделать это путем сообщения браузеру, что можно только принять UTF-8 путем установки заголовка Принимать-набора-символов на каждом ответе на "UTF-8; q=1, ISO-8859-1; q=0.6". Это поместит UTF-8 как высшее качество и набор символов по умолчанию, ISO-8859-1, как приемлемый, но более низкое качество.
, Когда Вы говорите, что имя файла искажено, оно искажено в возвращаемом значении HttpServletRequest.getParameter?
Вы не используете UTF-8 для кодирования текстовых данных для HTML-форм. Стандарт HTML определяет две кодировки, и , соответствующая часть того стандарта здесь . "Старое" кодирование, чем ASCII дескрипторов, является application/x-www-form-urlencoded. Новый, который работает правильно, является multipart/form-data.
А именно, объявление формы похоже на это:
<FORM action="http://server.com/cgi/handle"
enctype="multipart/form-data"
method="post">
<P>
What is your name? <INPUT type="text" name="submit-name"><BR>
What files are you sending? <INPUT type="file" name="files"><BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</FORM>
И я думаю, что это - все, что необходимо взволновать по поводу - веб-сервер должен обработать его. Если Вы запишете что-то, что непосредственно читает InputStream из веб-клиента, то необходимо будет читать RFC 2045 и RFC 2046 .
У меня была такая же проблема, и оказалось, что помимо указания кодировки в фильтре
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
необходимо добавить acceptcharset в форму
<form method="post" enctype="multipart/form-data" acceptcharset="UTF-8" >
и запустите JVM с
-Dfile.encoding=UTF-8
. В метатеге HTML нет необходимости, если вы отправляете его в заголовке HTTP с помощью response.setCharacterEncoding ().