Jump to content

How to get ANSI symbols into a compiled script?


Recommended Posts

I sometimes use an em dash (alt 151) character in message dialogs.  The character appears correctly when testing under SciTE.  But once I compile the script, the em dash is replaced by an odd character.  Examples are below.  I've read dozens of posts and tried several things, but I can't crack through on this one.

How can I get these extended ANSI characters into the compiled script?  The compiler seems determined to express everything in Unicode.

Thanks in advance for any help with this.

emDash.PNG

Before compile.PNG

After compile.PNG

Edited by qwert
Link to comment
Share on other sites

More searching and trying more things led me to a solution that I do not like.  I found a web site that listed the Unicode for em dash as a decimal value of 8212.

So I replaced the — character in each text string with " & ChrW(8212) & " ... and both the native script and the compiled script display the proper em dash.  But I do not know why.

To me, hard coding such values is about the same as using magic numbers in script statements.

Although I have this workaround, my question still stands: what setting will make the compiler pass the ANSI codes into the EXE?

Or to put it another way: if we can work in ANSI ... and test in ANSI ... how do we make the compiler honor that ANSI?

 

Link to comment
Share on other sites

  • Developers

Have you tried changing the file encoding of the scriptfile from the defaut utf-8 without bom to Code Page property?

Jos

 

Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • Developers

Well, the last couple of SciTE versions will use UTF-8  as the default option to support unicode, but it will only default to it when an file doesn't contain any "special" ascii characters.  Seems you either use an older version of SciTE or the file actually does contain one or more special ascii characters.
How are you compiling ? 
Are you using any utilities like Tidy and/or au3stripper that could change the file content since to stated that running the script it works fine but not when compiled?

If so, which versions? (Show me the whole SciTE outputpane info when you compile the script).

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Screen capture is below.  As you can see, I do use the strip option.  Here's the full text of the compile command line:

Quote

>Running:(3.3.14.2):C:\AutoIt3\aut2exe\aut2exe.exe  /in "D:\Au3 MASTERS\Click Pad\ClickPad+_stripped.au3" /out "C:\Users\TwigSoft64\AppData\Local\AutoIt v3\Aut2exe\~AU3nsishzx.exe" /nopack /icon "D:\Au3 MASTERS\Icons\ClickPad.ico" /comp 2

 

Compile Transcript.PNG

 

Link to comment
Share on other sites

  • Developers

What happens when you run the "Click Pad\ClickPad+_stripped.au3" files version of the script from within SciTE?
Is the special ansii character located in the master/main script or one of its included files?
What encoding does the  "Click Pad\ClickPad+_stripped.au3"  source file have? 

You are running pretty outdated versions of the utilities so maybe you could try the latest version of Autoit3Wrapper and au3stripper.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Quote

What happens when you run the "Click Pad\ClickPad+_stripped.au3" files version of the script from within SciTE?

It fails, the same as the EXE.

Quote

Is the special ansii character located in the master/main script or one of its included files?

It's in the main script.

Quote

What encoding does the  "Click Pad\ClickPad+_stripped.au3"  source file have? 

How do I determine that?  "Properties" doesn't seem to have an indication of encoding.

BTW, I'll look at upgrading.  I really didn't think I was that far behind, with my v3.3.14.2 load.  I try to stick with major releases.

Link to comment
Share on other sites

  • Developers

 

17 minutes ago, qwert said:

It fails, the same as the EXE.

 This would indicate that the file encoding is changed in the stripper process. Just try using the current au3stripper in your setup to see if that fixes it.

17 minutes ago, qwert said:

How do I determine that? 

Same as the previous time, open in SciTE and look what File/Encoding shows.

Jos

Edited by Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • Developers
7 minutes ago, qwert said:

It shows Code Page Property

Ok, so that is the same as the original source code containing the statement with the dash character. Did you check the code in the stripped version?

Just try this version: https://www.autoitscript.com/autoit3/scite/download/beta_SciTE4AutoIt3/Au3Stripper.exe

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Quote

Did you check the code in the stripped version?

If you mean are the em dash characters in the stripped version, the answer is yes.

But I've found a big anomaly on my PC.  The SciTE I'm actually using is 3.5.4 ... from 2015.  I have a later version in a parallel directory that's not being accessed.  I recall some problem in setting up my new PC early this year that caused me to waive off of the latest and just run with what worked.

You've pointed me in the right direction, but it may take me a day or two to sort this out.  I'll post when I have valid results to report.

I greatly appreciate your help on this. 

Link to comment
Share on other sites

  • Developers

Your welcome and let me know in case you need more assistance with debugging. Maybe upgrade to the latest version of the SciTE4AutoIt3 installer anyway as I have made many changes since the version you are running... also in the support of ANSI and UTF8 files.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • 3 weeks later...

Good news.  Bad news.

I'm pleased to report that the newest Au3Stripper does properly handle extended characters ... like emdash and the copyright symbol.

But I'm dismayed by the fact that it apparently removed a variable that is referenced by the following statement:

Global Const $tagREBARBANDINFO = "uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;" & "int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;" & "uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader" &((@OSVersion = "WIN_XP") ? "" : ";" & $tagRECT & ";uint uChevronState")

I'll grant that this use of $tagRECT is not simple.  But this statement works fine in the older version of Au3Stripper.  And by the looks of it, the statement is from a UDF.  Maybe I can isolate the section of code and bring it into my script. 

I'll report my progress and will appreciate any advice on how to work around this problem. 

Link to comment
Share on other sites

  • Developers

Send/PM me a (small) example script that shows the behaviour and I will do some debugging.

Jos

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

  • 4 weeks later...

Do you have any progress ?

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE * IE on Windows 11

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...