Articles of 字符编码

使用ZXing对byte 进行编码和解码

我正在开发一个Android应用程序,我需要编码和解码ZXing应用程序生成的QRCode中的字节数组。 我的问题是,我的消息解码不完全匹配生成的字节数组。 我试图创build一个QRCode基于一个字节数组包含增量索引,即 input = [0, 1, 2, …, 124, 125, 126, 127, -128, -127,… -3, -2, -1, 0, 1, 2, …] 在QRCode中对消息进行编码并在响应方进行解码之后,获得以下字节数组输出: output = [0, 1, 2, …, 124, 125, 126, 127, 63, 63,… 63, 63, 63, 0, 1, 2, …] 所有“负”字节值都转换为ASCII字符63:'?' 问号字符。 我认为编码字符集有问题,但是由于我使用ISO-8859-1,所有人都声称自己是这类问题的解决scheme( 其他主题在 这里 处理同样types的问题 )看看我的错误在哪里,或者如果我在编码或解码实例期间跳过了一步。 这里是我执行的编码给定的字节数组的代码: String text = ""; byte[] […]

Android:发送短信时的Unicode /字符集问题(sendTextMessage)

基本上我有一个工作的应用程序,收到短信后发送短信。 一切工作正常 ,除了当发送短信文本“特殊字符”,即“é,à,í,ç”等 我已经尝试了很多东西,包括字符集转换,但我根本无法使它工作… msgText总是带着字符集编码问题。 以下是发送消息的部分: if (msgText.length() > 160) { ArrayList msgTexts = sm.divideMessage(msgText); sm.sendMultipartTextMessage(PhoneNumber, null, msgTexts, null, null); } else { try { sm.sendTextMessage(PhoneNumber, null, msgText, null, null); } catch (IllegalArgumentException e) { e.printStackTrace(); } } 这里是我尝试过的字符集转换函数(但没有帮助),我申请了msgText: public static String formatCharset(String txtInicial) { //– Please notice this is just for reference, I tried […]

如何在Java / Android中定义一个新的字符集?

在台湾,我们有一个名为“Unicode At One(UAO)”的字符编码,它是BIG-5的扩展,但不被Java和Android所支持。 代码页在http://moztw.org/docs/big5/table/uao241-b2u.txt 我的问题是,我怎样才能使用这个字符集生成字节数组数据的string对象? 我想我会扩展string类,并在其中做一些事情,但我不知道如何创build一个新的字符集。

读取/写入特殊字符的.txt文件

我打开记事本 (Windows)并写入 Some lines with special characters Special: Žđšćč 并转到另存为… “someFile.txt” 编码设置为UTF-8 。 在Java中,我有 FileInputStream fis = new FileInputStream(new File("someFile.txt")); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader in = new BufferedReader(isr); String line; while((line = in.readLine()) != null) { printLine(line); } in.close(); 但我得到问号和类似的“特殊”字符。 为什么? 编辑:我有这个input(在.txt文件中的一行) 665,Žđšćč 和这个代码 FileInputStream fis = new FileInputStream(new File(fileName)); InputStreamReader isr […]

如何在Android上读写UTF-8到磁盘?

我无法使用Android API示例中显示的标准InputStreamReader方法将扩展字符(例如法语重音字符)读取和写入文本文件。 当我读回文件使用: InputStreamReader tmp = new InputStreamReader(in); BufferedReader reader = new BufferedReader(tmp); String str; while ((str = reader.readLine()) != null) { … 读取的string在扩展字符而不是在行尾截断。 string的后半部分出现在下一行。 我假设我需要坚持我的数据为UTF-8,但我找不到任何这样的例子,我是新来的Java。 任何人都可以提供一个例子或相关文档的链接?

处理unicode 如何摆脱? 安卓/ JAVA

我正在使用一个terminal仿真程序库来创build一个terminal,然后使用它将通过串行input的数据发送到串行设备。 图书馆可以在这里看到。 当我input数据到terminal时,一系列奇怪的字符被发送/接收。 我认为unicodereplace字符通过串行发送,串行设备不知道它是什么,并返回〜0。 当我写“testing”时在terminal中出现的内容的屏幕截图: 日志显示发送的string和收到的数据。 我创build一个EmulatorView,它是terminal视图。 它在这里提到钻石。 private void sendText(CharSequence text) { int n = text.length(); char c; try { for(int i = 0; i < n; i++) { c = text.charAt(i); if (Character.isHighSurrogate(c)) { int codePoint; if (++i < n) { codePoint = Character.toCodePoint(c, text.charAt(i)); } else { // Unicode Replacement Glyph, aka […]

在Android应用程序中,特殊字符将被replace为正方形

在我的android应用程序中,我做了一个简单的敬酒 Toast.makeText( parent.getApplicationContext(), parent.getResources().getIdentifier(result, "string", parent.getPackageName()), Toast.LENGTH_LONG).show(); 这个 parent.getResources().getIdentifier(result, "string", parent.getPackageName()) 从strings.xml检索名称与结果匹配的strings.xml 。 我有一个英文和德文的strings.xml文件。 问题在于像德语这样的特殊字符不能正确显示。 他们被一个方形符号取代。 strings.xml是utf-8编码的。 问题在哪里,我该如何解决?

Android JSON CharSet UTF-8问题

我目前正在从事一个Android应用程序,从一个提供JSON数据的API获取数据。 我将JSON数据的项存储为string,导致出现一些奇怪的字符(例如'')。 我明白这与字符集,因此我已经将InputStreamReader设置为“UTF-8”,但似乎没有解决问题。 URL hukd = new URL(requestUrl); URLConnection tc = hukd.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(tc.getInputStream(), "UTF-8")); String line = in.readLine(); Log.d("line :", line); JSONObject obj = new JSONObject(line); JSONArray ja = obj.getJSONObject("deals").getJSONArray("items"); for (int i = 0; i < ja.length(); i++) { // each deal JSONObject jo = (JSONObject) ja.get(i); // make […]

为什么volley的响应string使用与响应头中不同的编码?

使用OkHttp堆栈执行抽象请求( StringRequest或JsonObjectRequest )时,响应string的编码设置为ISO-8995-1,这是默认编码。 响应有一个标题: content-type=text/html; charset=utf-8 content-type=text/html; charset=utf-8 ,应该被检测到。 为什么不是?

Android默认字符集时发送http post / put – 具有特殊字符的问题

我已经configuration了Apache httpClient,如下所示: HttpProtocolParams.setContentCharset(httpParameters, "UTF-8"); HttpProtocolParams.setHttpElementCharset(httpParameters, "UTF-8"); 对于所有http post和put请求,我还包含http头“Content-Type:application / json; charset = UTF-8”。 我正在尝试使用包含特殊字符(即通过Google拼音键盘,符号等的中文字符)的json正文发送http post / put请求。字符在日志中显示为乱码,但是我认为这是因为DDMS会不支持UTF-8,正如这个问题所描述的那样。 问题是当服务器收到请求时,它有时看不到字符(尤其是中文字符),或者当我们通过GET请求检索时,它变得毫无意义的垃圾。 我也试过把250个非ASCII字符放在一个字段中,因为这个字段最多可以容纳250个字符。 但是,在服务器端没有validation超过250个字符的限制。 250个ASCII字符工作得很好。 服务器帅哥声称他们支持UTF-8。 他们甚至试图模拟一个包含中文字符的发布请求,并且服务器收到的数据就好了。 然而,这个家伙(一个中国人)正在使用安装了中文语言包的Windows电脑(我想,因为他可以在他的键盘上input中文字符)。 我猜测Android客户端和服务器使用的字符集(由中国人制作的btw)没有alignment。 但是我不知道哪个服务器出了问题,因为服务器支持者声称他们支持UTF-8,而我们的其他客户端configuration为支持UTF-8。 这让我想知道在所有的文本input默认情况下Android使用的字符集,如果它可以编程更改为不同的。 我试图find关于如何在input小部件上这样做的资源,但我没有find任何有用的东西。 有没有一种方法来设置Android中的所有input小部件的字符集? 或者,也许我错过了其他客户端configuration中的东西? 或者,也许,也许,服务器的兄弟们没有在他们的服务器上使用UTF-8,而是使用Windows的字符集呢?