private static int AsciiEncodation(byte[] text, int textOffset, int textLength, byte[] data, int dataOffset, int dataLength) {
int ptrIn, ptrOut, c;
ptrIn = textOffset;
ptrOut = dataOffset;
textLength += textOffset;
dataLength += dataOffset;
while (ptrIn < textLength) {
if (ptrOut >= dataLength)
return -1;
c = text[ptrIn++] & 0xff;
if (IsDigit(c) && ptrIn < textLength && IsDigit(text[ptrIn] & 0xff)) {
data[ptrOut++] = (byte)((c - '0') * 10 + (text[ptrIn++] & 0xff) - '0' + 130);
}
else if (c > 127) {
if (ptrOut + 1 >= dataLength)
return -1;
data[ptrOut++] = (byte)235;
data[ptrOut++] = (byte)(c - 128 + 1);
}
else {
data[ptrOut++] = (byte)(c + 1);
}
}
return ptrOut - dataOffset;
}