Ja, das hat schon jemand gemacht, aber dieser jemand ist dermaßen schlecht im Marketing, dass das natürlich keiner weiß. Das Beste an der Sache ist, dass es schon auf dem IBM i Server installiert ist: ICU von IBM , siehe Bibliothek QICU.Hatte gehofft, dass das evtl. schon jemand gemacht.
https://icu.unicode.org/
Hier ein Beispiel:
Code:**FREE ctl-opt dftactgrp(*no) actgrp(*caller) bnddir('QICU/QXICUAPIBD'); // U_CFUNC int32_t // u_strToPunycode(const UChar *src, int32_t srcLength, // UChar *dest, int32_t destCapacity, // const UBool *caseFlags, // UErrorCode *pErrorCode); dcl-pr u_strToPunycode int(10) extproc('u_strToPunycode_4_0'); source pointer value; sourceLength int(10) value; // -1 if NULL-terminated target pointer value; targetLength int(10) value; caseFlags pointer const; // array of int(10) (one per char) or NULL) errorCode int(10); end-pr; dcl-pr strlen uns(10) extproc('strlen'); string pointer value; end-pr; main(); *inlr = *on; dcl-proc main; dcl-s domain ucs2(50) ccsid(*utf16); dcl-s punycode ucs2(50) ccsid(*utf16); dcl-s rc int(10); dcl-s errorCode int(10); dcl-s message char(50); domain = 'küchen.de' + x'00'; rc = u_strToPunycode(%addr(domain) : -1 : %addr(punycode) : %size(punycode) : *null : errorCode); message = 'Return code: ' + %char(rc); dsply message; message = 'Error code: ' + %char(errorCode); dsply message; message = punycode; dsply message; end-proc;
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks