Understand. Anyway, in Teapot it should possible to set the UTF-8
charset for JSON documents.
Thanks,
Volkert
Am 02.05.2015 um 20:34 schrieb Sven Van Caekenberghe:
Hi Volkert,
Thanks for the test case, it helped me figure out what the problem was.
Basically, what Norbert said was 100% correct: the server code (Teapot) should
have specified the charset or encoding of the mime-type it was using (so
application/json;charset=utf-8 instead of just application/json).
However, I thought I had changed the default to be utf-8, so I was surprised it
was not picked up.
It turned out utf-8 was the default for reading/writing http messages and their
entities, but not so when manually constructing instances (like Teapot did).
In code,
json := '{''bank'':''Région Genève Rhône''}'.
entity := ZnEntity with: json type: 'application/json'.
response := ZnResponse ok: entity.
response encoder.
did not return a ZnUTF8Encoder but a ZnNullEncoder.
I changed that now.
===
Name: Zinc-HTTP-SvenVanCaekenberghe.428
Author: SvenVanCaekenberghe
Time: 2 May 2015, 7:09:55.832482 pm
UUID: 6376bd91-2a95-4265-bfff-e3c6626aee79
Ancestors: Zinc-HTTP-SvenVanCaekenberghe.427
Change ZnStringEntity>>#initializeEncoder to default to ZnUTF8Encoder unless
ZnDefaultCharacterEncoder is set
Change ZnEntityReader>>#readEntity to no longer use #withDefaultUtf8Decoder:
(and remove it)
Change ZnEntityWriter>>#writeEntity: to no longer use #withDefaultUtf8Encoder:
(and remove it)
Add ZnResponseTests>>#testDefaultUTF8Encoding
===
Name: Zinc-Tests-SvenVanCaekenberghe.226
Author: SvenVanCaekenberghe
Time: 2 May 2015, 7:10:12.331593 pm
UUID: 9010fbd6-bf9d-400e-b463-cb73920b79f6
Ancestors: Zinc-Tests-SvenVanCaekenberghe.225
Change ZnStringEntity>>#initializeEncoder to default to ZnUTF8Encoder unless
ZnDefaultCharacterEncoder is set
Change ZnEntityReader>>#readEntity to no longer use #withDefaultUtf8Decoder:
(and remove it)
Change ZnEntityWriter>>#writeEntity: to no longer use #withDefaultUtf8Encoder:
(and remove it)
Add ZnResponseTests>>#testDefaultUTF8Encoding
===
for now, in #bleedingEdge of Zinc HTTP Components.
HTH,
Sven