Ok, Its pretty clear now. It's not our encoder's problem, it's decoder's issue. They are using ISO 18004:2000 instead of ISO 18004:2006.
Here are two links for encoder table which I will post here so you can easily understand what I am saying.
QrCode will have default 8 bit byte encoder, which default encoder won't need any header to describe what encoder it is. ISO 18004:2000 is japanese QrCode documentation which register way back at 2000, where ISO 18004:2006 is international QrCode specification
register at year 2006.
2000's version is using shift-jis as default encoder, where 2006 using iso 8859-1 as their default encoding. So if decoder is tailor to use ISO 18004:2000 to decode, your char ä for shift-jis table is empty. Thus gives error while trying
to decode by ISO 18004:2000 decoder. So if I type ¦ char, which is A6 in ISO 8859-1 table, when I try to decode I will get ｦ as Japanese character.
So now problem comes to fix, One of fix is add header for both 8859-1 and shift-jis, then it will support by all decoder. Is that good? I don't know actually. Few reasons.
1. It will be against ISO specification. Which can be nasty if some project required.
2. The advantage of be a default encoder will be gone for good. As I have to write header for that, the QrCode we generate will be larger than what we expect.
Thus, currently I decide to against change, and once I have time I will add support to create QrCode for specific ISO specification. One thing you can do is either ask your user to use proper decoder(which is western focused decoder that use
latest ISO specification), or if you know they are not decoder that made by Japan you can ask them to change their code, or last option edit our source code on your own( which I can help you out, it's not hard, only take few min).
Let me know your opinion also try to read carefully about what I have written up their and make your decision according to that. One thing you might notice is that the one we can decode is using utf8. Which that QrCode is so large. It's good
that we can decode, but on the other hand, if you want print something on your small business card, you are going to have hard time. As the larger code you get, the smaller cells when it paint on card, thus it will be really hard to decode. Smaller size code
is optimal choice to print on limit space, that's one major reason I'm against to change our code. Please understand that.