BTM file encoding

  • This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Charles Dye

Super Moderator
Staff member
May 20, 2008
3,376
39
Albuquerque, NM
prospero.unm.edu
#2
Have you checked that your current font actually includes the block graphics characters? Not all do.

Character encoding is between you, your text editor, and the CHCP command. If mojibake is an issue in your batch files, I suggest saving them as UTF-16.
 
#4
Have you checked that your current font actually includes the block graphics characters? Not all do.

Character encoding is between you, your text editor, and the CHCP command. If mojibake is an issue in your batch files, I suggest saving them as UTF-16.
I took Roedy to mean when he RUNS the batch files.
 

Charles Dye

Super Moderator
Staff member
May 20, 2008
3,376
39
Albuquerque, NM
prospero.unm.edu
#5
#9
Or else add
Code:
CHCP 437
to your TCSTART.BTM file. That'd be another workaround.
I don't think that helps. Here, 437 is the console output CP, and I can't see 437's upper half correctly. Compare TYPE in v16 and v19.
Code:
v:\> ver & chcp 437 & type 437.txt

TCC  16.03.55  Windows 7 [Version 6.1.7601]
Active code page: 437
íóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ 
v:\> exit

v:\> ver & chcp 437 & type 437.txt

TCC  19.10.51  Windows 7 [Version 6.1.7601]
Active code page: 437
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
 

Charles Dye

Super Moderator
Staff member
May 20, 2008
3,376
39
Albuquerque, NM
prospero.unm.edu
#11
Vince, what is, if you make your test above with the TERMINAL font (in TCC, NOT in TCMD)? Would be interesting to know (if you have the time for) ...
Roedy and Vincent are both correct, and I was wrong. TCC is interpreting OEM text files according to the Windows code page, also miscalled the "ANSI code page", and not per the console code page as they ought.

I apologize for confusing the issue.
 
#12
@vefatica

Vince, what is, if you make your test above with the TERMINAL font (in TCC, NOT in TCMD)? Would be interesting to know (if you have the time for) ...
It's the same with Terminal (as with Andale Mono, Lucida, and Consolas). All my tests have been with stand-alone TCC. WinDbg reveals that v19 calls MultiByteToWideChar with first argument 3 (CP_THREAD_ACP) while v16 calls the same function with first argument 437 (probably from GetConsoleOutputCP).
Code:
v:\> ver & echo %_fontinfo & chcp 437 & type 437.txt

TCC  16.03.55  Windows 7 [Version 6.1.7601]
2 8 12 400 Terminal
Active code page: 437
íóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■
v:\> exit

v:\> ver & echo %_fontinfo & chcp 437 & type 437.txt

TCC  19.10.51  Windows 7 [Version 6.1.7601]
2 8 12 400 Terminal
Active code page: 437
¡¢£☼¥▌§"cª«¬-r_°±²3'µ¶·,1º»¼½_¿AAAAÄÅÆÇEÉEEIIIIDÑOOOOÖxOUUUÜY_ßàáâaäåæçèéêëìíîïdñòóôoö÷oùúûüy_ÿ
v:\>
 
#13
Roedy and Vincent are both correct, and I was wrong. TCC is interpreting OEM text files according to the Windows code page, also miscalled the "ANSI code page", and not per the console code page as they ought.

I apologize for confusing the issue.
No need to apologize - codepages are evil - not just related to TCC/TCMD. I had and have frequently problems too - but not so frequently that I could not forget the important things about it :-)