Fix #40. Changed string encoding to UTF8 when sending bytes accross the network

This commit is contained in:
Gideon le Grange 2016-10-08 19:05:09 +02:00
parent e627fc7212
commit a6230a82bf
2 changed files with 32 additions and 1 deletions

View File

@ -0,0 +1,30 @@
package examples;
import java.util.List;
import java.util.Map;
import me.legrange.mikrotik.MikrotikApiException;
/**
* Example 7: Dump your complete config
*
* @author gideon
*/
public class DownloadConfig extends Example {
public static void main(String... args) throws Exception {
DownloadConfig ex = new DownloadConfig();
ex.connect();
ex.test();
ex.disconnect();
}
private void test() throws MikrotikApiException, InterruptedException {
con.execute("/export file=conf");
List<Map<String, String>> res = con.execute("/file/print detail where name=conf.rsc");
con.execute("/file/remove .id=conf.rsc");
String text = res.get(0).get("contents");
for (String line : text.split("\r")) {
System.out.println(line);
}
}
}

View File

@ -133,7 +133,8 @@ final class Util {
* stream. * stream.
*/ */
private static void encode(String word, OutputStream out) throws UnsupportedEncodingException, IOException { private static void encode(String word, OutputStream out) throws UnsupportedEncodingException, IOException {
byte bytes[] = word.getBytes("US-ASCII"); // byte bytes[] = word.getBytes("US-ASCII");
byte bytes[] = word.getBytes("UTF-8");
int len = bytes.length; int len = bytes.length;
if (len < 0x80) { if (len < 0x80) {
out.write(len); out.write(len);