[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: BUG REPORT: failed with Chinese charaters (I've fixed it)
From: |
Pawel Kot |
Subject: |
Re: BUG REPORT: failed with Chinese charaters (I've fixed it) |
Date: |
Sun, 8 Oct 2006 20:50:26 +0200 |
Hi,
On 10/8/06, waterser forrest <address@hidden> wrote:
I have a Nokia 3100, which needs the same driver with N6510. I downloaded
gnokii-0.6.13 and found the the Chinese messages in my cell phone cannot be
wholly fetched, instead, some of the messages are truncated to only a half.
I read the code and found that there are 2 bytes seem related with the
length of the msg block, one of which can be found as `block[3]' in Ln815,
common/phones/nk6510.c.
Could you please show the sample dumps? Probably you are right but I
cannot achieve it with neither ascii sms nor with Polish alphabet.
When I read the raw data of the message, I found that the byte ahead of
block[3], which can be read as block[2] in the C code, is the correst
length, and this equation is true:
block[2] = 2 * block[3]
One weird thing is that sometimes block[2] == block[3], while sometimes
block[2] = 2 * block[3]. I guess that block[2] is "How many SYMBOLS are
there in the message" and block[3] is "How many BYTES". I cannot find the
origin format document about this, so I'm just guessing.
And the example?
I changed block[3] into block[2] at Ln815, and I changed Ln714 of nk6510.c
like this:
/*data->raw_sms->dcs = message[5];*/
if (message[1] == 2) {
data->raw_sms->dcs = message[6];
}
else {
data->raw_sms->dcs = message[5];
}
And what is the reason for this?
And please don't get me wrong. I don't say that your findings are
incorrect, I just want to fix the problem in the right way.
take care,
pkot
--
Pawel Kot