JSON Superobject (8): Several cases of garbled characters-report to Henri Gourvest Master

Source: Internet
Author: User

These days to learn json-superobject, very fortunate to get its author Henri gourvest Master's synchronous guidance! (Master Henri is also the author of Dspack and GDI + header files; The master is French, can reply to me in Chinese, did not think!).

The study found that some places in the superobject of Chinese (or Unicode) support is not expected, now put forward for the master to identify.

The following examples will appear garbled, although all can have a flexible scheme, but if not garbled it is very good!

UnitUnit1;InterfaceusesWindows, Messages, sysutils, variants, Classes, Graphics, Controls, Forms, Dialogs, Stdctrls;typeTForm1 =class(Tform)    Memo1:tmemo;    Button1:tbutton;    Button2:tbutton;    Button3:tbutton; Button4:tbutton;procedureButton1Click (Sender:tobject);procedureButton2click (Sender:tobject);procedureButton3click (Sender:tobject);procedureButton4click (Sender:tobject);End;varForm1:tform1;Implementation{$R *.DFM}usesSuperobject;procedureTform1.button1click (Sender:tobject);varJo:isuperobject; Stream:tstream;beginStream: = Tmemorystream.create; JO: = SO (' {' Language ': ' Chinese Simplified '} '); Jo.  SaveTo (stream, false, false); Stream. Position: =0; Memo1.Lines.LoadFromStream (stream);//{"Language": "€s-?}Stream. Free;End;procedureTform1.button2click (Sender:tobject);ConstFilePath =' C:\Temp\Test.txt ';varJo:isuperobject;beginJO: = SO (' {' Language ': ' Chinese Simplified '} '); Jo. SaveTo (FilePath, False, false); withTstringlist.create DobeginLoadFromFile (FilePath); ShowMessage (Text);//{"Language": "€s-?}Free;End;End;procedureTform1.button3click (Sender:tobject);varJo:isuperobject; Stream:tstream;beginStream: = Tstringstream.create (' {' Language ': ' Chinese Simplified '} ');  JO: = Tsuperobject.parsestream (stream); ShowMessage (Jo. Asjson (False, false));//{"Language": "¼òìåöðîä"}Stream. Free;End;procedureTform1.button4click (Sender:tobject);ConstFilePath =' C:\Temp\Test.txt ';varJo:isuperobject;begin withTstringlist.create DobeginADD (' {' Language ': ' Chinese Simplified '} ');    SaveToFile (FilePath); Free;End;  JO: = Tsuperobject.parsefile (FilePath); ShowMessage (Jo. Asjson (False, false));//{"Language": "¼òìåöðîä"}End;End.


The following are temporary workarounds for the above issues:

UnitUnit1;InterfaceusesWindows, Messages, sysutils, variants, Classes, Graphics, Controls, Forms, Dialogs, Stdctrls;typeTForm1 =class(Tform)    Memo1:tmemo;    Button1:tbutton;    Button2:tbutton;    Button3:tbutton; Button4:tbutton;procedureButton1Click (Sender:tobject);procedureButton2click (Sender:tobject);procedureButton3click (Sender:tobject);procedureButton4click (Sender:tobject);End;varForm1:tform1;Implementation{$R *.DFM}usesSuperobject;procedureTform1.button1click (Sender:tobject);varJo:isuperobject; Stream:tstream;beginStream: = Tmemorystream.create; JO: = SO (' {' Language ': ' Chinese Simplified '} '); Jo.  SaveTo (Stream, False, True); Stream. Position: =0; Memo1.Lines.LoadFromStream (stream);//{"Language": "\u7b80\u4f53\u4e2d\u6587"}Stream. Position: =0;  JO: = Tsuperobject.parsestream (stream); ShowMessage (Jo. asstring);//{"Language": "Simplified Chinese"}Stream. Free;End;procedureTform1.button2click (Sender:tobject);ConstFilePath =' C:\Temp\Test.txt ';varJo:isuperobject;beginJO: = SO (' {' Language ': ' Chinese Simplified '} '); Jo. SaveTo (FilePath, False, True); withTstringlist.create DobeginLoadFromFile (FilePath); ShowMessage (Text);//{"Language": "\u7b80\u4f53\u4e2d\u6587"}Free;End;End;procedureTform1.button3click (Sender:tobject);varJo:isuperobject; Stream:tstream;beginStream: = Tstringstream.create (' {' Language ': ' \u7b80\u4f53\u4e2d\u6587 '} ');  JO: = Tsuperobject.parsestream (stream); ShowMessage (Jo. Asjson (False, false));//{"Language": "Chinese Simplified"}Stream. Free;End;procedureTform1.button4click (Sender:tobject);ConstFilePath =' C:\Temp\Test.txt ';varJo:isuperobject;begin withTstringlist.create DobeginADD (' {' Language ': ' Chinese Simplified '} ');    SaveToFile (FilePath); Free;End;  Memo1.Lines.LoadFromFile (FilePath); JO: = SO (Memo1.text);//JO: = Tsuperobject.parsefile (FilePath);ShowMessage (Jo. Asjson (False, false));//{"Language": "Chinese Simplified"}End;End.

JSON Superobject (8): Several cases of garbled characters-report to Henri Gourvest Master

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.