From: <apn...@ya...> - 2025-04-16 16:36:23
|
Harald wrote: > I wonder, that the manifest aparently has no influence on TextOutA. That's right. TextOut is part of Windows GDI which Microsoft explicitly documents as not supporting UTF-8 *even if the code page is set to UTF-8 via the manifest*. There is a "beta" (Microsoft's word, not mine) mode you can set in the registry to enable this but it has been beta mode since *2019* fwiw! And of course it will affect all applications and users on the system. 9.0 and TIP 716 behave the same way because the latter preserves 9.0's [encoding system] to be always utf-8 (modulo platform). It is unfortunate that extensions have to be modified, needless pain imo, but at least you can fix it since you have the source. The real hard nut is when you do not own the source and have no means to modify it as happened in the DB2 TPC case. /Ashok -----Original Message----- From: Harald Oehlmann <har...@el...> Sent: Wednesday, April 16, 2025 2:51 PM To: tcl...@li... Subject: Re: [TCLCORE] TIP 716 ready for comments Ashok, you were totally correct. Here is the relevant code snippet: pStr = Tcl_GetStringFromObj(objv[PositionSPar],&lStr); Tcl_UtfToExternalDString( NULL, pStr, lStr, &sPar1); TextOut(pdlg.hDC, X0, Y0, Tcl_DStringValue( &sPar1 ), Tcl_DStringLength( &sPar1 )) So, TextOutA gets utf-8 in TCL9 and tip-715 and cp12xx on TCL 8.6. I wonder, that the manifest aparently has no influence on TextOutA. Normally, it should work with 9.0, as data and interpretation is utf-8. I don't want to dig too deep here. TIP 715 is great and already the "encoding user" is very important. Thanks for all, Harald Am 16.04.2025 um 04:17 schrieb apnmbx-public--- via Tcl-Core: > Harald, > > It **appears** from the output you are passing UTF-8 data to the DLL > which is expecting cp1252 or similar. > > For example, > > % set x 1AÄÖÜäöü > > 1AÄÖÜäöü > > % set utf [encoding convertto utf-8 $x] > > 1AÃÃÃäöü > > % encoding convertfrom cp1252 $utf > > 1AÄÖÜäöü > > Which is the output you are seeing. My **guess** (because it works on > Tcl8) is you are using one of the Tcl encoding routines which default to > [encoding system] (utf-8) and passing that string to the DLL. Note this > has not changed in TIP 716 to maintain 9.0 compatibility. > > Can you elaborate on how you are passing data? I would like to resolve > as many of these encoding issues on Windows as we can, whether they > relate to the manifest/716 or not, before the next patchlevel. > > /Ashok > > -----Original Message----- > From: Harald Oehlmann <har...@el...> > Sent: Wednesday, April 16, 2025 1:16 AM > To: apn...@ya...; tcl...@li... > Subject: Re: [TCLCORE] TIP 716 ready for comments > > Am 14.04.2025 um 16:54 schrieb apn...@ya... <mailto:apnmbx- > pu...@ya...>: > > > Harald, > > > > > > Could you try the tip-716 branch to see if fixes your print dll umlaut > > > issue? > > Unfortunately, my dll with A-suffix API prints: > > 1AÄÖÜäöü > > for 8.6 and > > 1AÄÖÃoeäöü > > for 9.0 and TIP715 branch > > 8.6 was build with MS.VC 6 32 bit > > 9.0 was build with VS 2022 32 bit > > Sorry, > > Harald > > > > _______________________________________________ > Tcl-Core mailing list > Tcl...@li... > https://lists.sourceforge.net/lists/listinfo/tcl-core -- ELMICRON Dr. Harald Oehlmann GmbH Koesener Str. 85 06618 NAUMBURG - Germany Phone: +49 3445 781120 Direct: +49 3445 781127 www.Elmicron.de German legal references: Geschaeftsfuehrer: Dr. Harald Oehlmann UST Nr. / VAT ID No.: DE206105272 HRB 212803 Stendal |