Skip to content

Commit ce069d9

Browse files
committed
Support for UTF-8 in comments
1 parent 6b119b8 commit ce069d9

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

codec2talkie/src/main/java/com/radio/codec2talkie/protocol/aprs/AprsDataPositionReport.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.radio.codec2talkie.tools.UnitTools;
1212

1313
import java.nio.ByteBuffer;
14+
import java.nio.charset.StandardCharsets;
1415
import java.util.Locale;
1516
import java.util.regex.Matcher;
1617
import java.util.regex.Pattern;
@@ -143,7 +144,7 @@ private boolean fromCompressedBinary(byte[] infoData) {
143144

144145
byte[] tail = new byte[buffer.remaining()];
145146
buffer.get(tail);
146-
String strTail = new String(tail);
147+
String strTail = new String(tail, StandardCharsets.UTF_8);
147148
Pattern latLonPattern = Pattern.compile("^([\\\\/])(\\S{4})(\\S{4})(\\S)(.\\S)?(\\S)?(.*)$", Pattern.DOTALL);
148149
Matcher latLonMatcher = latLonPattern.matcher(strTail);
149150
if (!latLonMatcher.matches()) {
@@ -215,7 +216,7 @@ private boolean fromUncompressedBinary(byte[] infoData) {
215216
// read latitude/symbol_table/longitude/symbol
216217
byte[] tail = new byte[buffer.remaining()];
217218
buffer.get(tail);
218-
String strTail = new String(tail);
219+
String strTail = new String(tail, StandardCharsets.UTF_8);
219220
Pattern latLonPattern = Pattern.compile(
220221
"^" +
221222
"(?:.*)?" + // optional timestamp

codec2talkie/src/main/java/com/radio/codec2talkie/protocol/aprs/AprsDataPositionReportMicE.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.radio.codec2talkie.tools.UnitTools;
88

99
import java.nio.ByteBuffer;
10+
import java.nio.charset.StandardCharsets;
1011
import java.util.Arrays;
1112
import java.util.HashMap;
1213
import java.util.Locale;
@@ -222,9 +223,9 @@ public void fromBinary(String srcCallsign, String dstCallsign, String digipath,
222223
if (infoData.length > 11 && infoData[11] == '}') {
223224
_position.hasAltitude = true;
224225
_position.altitudeMeters = ((infoData[8] - 33) * 91 * 91 + (infoData[9] - 33) * 91 + (infoData[10] - 33)) - 10000;
225-
_position.comment = TextTools.stripNulls(new String(Arrays.copyOfRange(infoData, 12, infoData.length)));
226+
_position.comment = TextTools.stripNulls(new String(Arrays.copyOfRange(infoData, 12, infoData.length), StandardCharsets.UTF_8));
226227
} else {
227-
_position.comment = TextTools.stripNulls(new String(Arrays.copyOfRange(infoData, 8, infoData.length)));
228+
_position.comment = TextTools.stripNulls(new String(Arrays.copyOfRange(infoData, 8, infoData.length), StandardCharsets.UTF_8));
228229
}
229230

230231
_position.maidenHead = UnitTools.decimalToMaidenhead(_position.latitude, _position.longitude);

codec2talkie/src/main/java/com/radio/codec2talkie/protocol/aprs/AprsDataTextMessage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.radio.codec2talkie.protocol.position.Position;
55

66
import java.nio.ByteBuffer;
7+
import java.nio.charset.StandardCharsets;
78

89
public class AprsDataTextMessage implements AprsData {
910

0 commit comments

Comments
 (0)