PDA

View Full Version : Unable to display hex 1F character under Windows 7



wetware
December 11th, 2012, 03:54 PM
I'm not sure whether I'm alone in experiencing this, but since switching to a Windows 7 machine (from XP), I can no longer "see" the VEDIT OEM character that represents hex 1F. On my old XP laptop, it can be entered from the keyboard by: CTRL-hyphen. I *hope* I've managed to attach a JPEG of what I see on my Windows 7 system; please compare this behavior to your own system's.

Note in the attached image that hex 1F is not shown (although it IS present near the middle of rows 1 and 5--just before the actual space) in the ANSI.TBL file.

Note also that no graphical representation of hex 1F is shown via MISC --> ASCII Table

Hex 1F is a fairly common and important character in files I work with. Viewing with "hex mode split" is a major problem: one can see 1F in the hex window, but there's no corresponding character in the other window (no, not even a SPACE). From that point on, highlighted char pairs are no longer in synch.


85

Scott Lambert
December 12th, 2012, 10:59 AM
Hi,

The character 1F does not show up in my Ascii table either, and I run under Windows 7 too.

In the PDF manual, it shows as a down triangle, so supposely something should show up on the screen.

On your jpeg, only hex 1f and 20 show no character, on my ascii table, hex 1c to 20 show no character.

Very strange.

Scott

Scott Lambert
December 12th, 2012, 11:53 AM
Hi Again,

Have you tried a different font from the View > Font menu ?

I just switched my font from Vedit Ansi which is my default to Vedit Oem and now 1f in the ascii table shows:

^_

Now only hex 20 is blank.

Scott

Scott Lambert
December 12th, 2012, 12:08 PM
Hi again,

Under font Terminal 1f displays the down triangle as the manual says it should.


Scott

wetware
December 12th, 2012, 02:22 PM
Thanks. I tried your suggestion, and it worked--but only briefly. For about a minute, the missing char was back--both in editable files and on the ASCII Table. Now it's gone again. Don't you just hate transient, erratic problems? (Don't get me wrong: I love VEDIT, though. Have been a customer/user for more than a decade.)

Scott Lambert
December 12th, 2012, 05:42 PM
Hi,

Very strange it works only briefly on your system.

The attached hex-1f.txt contains five 1f between 2 equal signs. On my system, using font terminal, I am unable to duplicate the work / not work problem. The 1f always shows as a down triangle. I can open and close the file, exit vedit, and restart vedit and it always works.

What happens on your sytem using hex-1f.txt and font terminal?

This is suggesting a config option is wrong on your system??

Shot in the dark: On my system, under config > characters/cursors, I have Screen Display mode equal to 0 (zero).

Scott

wetware
December 12th, 2012, 07:21 PM
Thanks for posting the hex-1f.txt file. It's kind of funny when viewed using VEDIT's Ansi or Oem fonts: I see just 2 equal signs with nothing between them; but I CAN move the "I-bar" cursor 5 character positions to the right of what SHOULD the last char on the line. For some really strange viewing, take a look at it with hex mode split: the second equal sign can jump from position 2 to position 7 as you move the highlight, if the active cursor is in the hex window. But if you click back in the text window, the equal signs "collapse" again.

All things considered, I may switch to using the Terminal font, as it comes closest to meeting my work requirements.
I don't think it's as easy on the eyes as Oem, and I especially dislike its presentation of TAB, CR, LF, etc. characters.
But at least it's monospaced, and does show SOMETHING wherever hex 1F occurs.

Am also having some luck using another editor that can handle VEDIT's Oem font (and hex 1F in particular). I'm not happy about migrating from VEDIT, but this other software is also able to deal with Unicode/UTF-8--and that's becoming more and more important for me at work.

Many thanks for your investigation and advice!

Gerard

ian binnie
December 12th, 2012, 07:24 PM
I'm not sure whether I'm alone in experiencing this, but since switching to a Windows 7 machine (from XP), I can no longer "see" the VEDIT OEM character that represents hex 1F. On my old XP laptop, it can be entered from the keyboard by: CTRL-hyphen. It *hope* I've managed to attach a JPEG of what I see on my Windows 7 system; please compare this behavior to your own system's.

Note in the attached image that hex 1F is not shown (although it IS present near the middle of rows 1 and 5--just before the actual space) in the ANSI.TBL file.

Note also that no graphical representation of hex 1F is shown via MISC --> ASCII Table

Hex 1F is a fairly common and important character in files I work with. Viewing with "hex mode split" is a major problem: one can see 1F in the hex window, but there's no corresponding character in the other window (no, not even a SPACE). From that point on, highlighted char pairs are no longer in synch.


85

From the display which you have attached you seem to be using one of the Vedit fonts.
Even the Vedit OEM does not display the characters 00-1F as graphics.

The only font which will display these is Terminal (or Terminal Vector).

I don't currently have a Windows 7 system, but the above applies to XP as well.

It appears you have another problem, because you attachment is not even showing the other glyph for character 1F.

One possible cause of you problem may be the code page.
The command chcp (in a terminal) will show the active code page, and also allow it to be changed.

There is a further complication for later versions of Windows, and there is a setting for "Code page for non unicode programs" (or something like that).
The system needs to be restarted if this is changed.

wetware
December 12th, 2012, 08:16 PM
According to the 6.0 Manual:

The custom “VEDIT Ansi” font is the default. Instead of displaying control
characters with the standard IBM PC “smiley face” and arrows, it displays
more useful “^A”, “CR”, “LF”, etc.

And those glyphs are what I had been working with--successfully--for more than a decade, within VEDIT.
Yes, I understand that there's no glyph for 1F in the image of the ASCII table I posted; that's why I included it in the screen shot. (I doubted that anyone would believe it could go missing.)
This is a relatively recent setback for me. For what it's worth, my active code page is 437.

chriz
December 13th, 2012, 03:06 AM
Strange issue. I tried it on my Windows 7 system (with codepage 850).

The Terminal font doesn't show the 1F, but VEDIT OEM does as I expected.

A hardcopy is attached.

Christian

Scott Lambert
December 13th, 2012, 11:18 AM
"Many thanks for your investigation and advice!"

You are welcome.

At least you are further ahead, then when you first posted. The solution seems to involve picking the right font, but does not seem to be the complete solution.

I am unable to advise on codepages, never fooled around with those.

Best of luck with your problem.

Scott

Scott Lambert
December 13th, 2012, 11:27 AM
Hi,

Not sure if this helps, but in the View menu, under the submenu options, there is the "Show Character Value", if you enable this feature, the status line will display the ascii value of the current character even if you cannot see it on the screen.

Scott

wetware
December 13th, 2012, 11:33 AM
I may have hit upon a satisfactory combination of settings today--I just hope this has some staying power:

Code page is still: 437
Font: VEDIT Oem
Screen display mode: 4

See attached: the glyph for 1F is present--monospaced--in the editable file AND it also appears on the ASCII Table.

88

This setting combo appears to survive everything I'm likely to throw at it: round trips through "hex mode split" viewing of files, opening/closing of multiple files, window splits, etc.

Thank you all for your patience in this odd case.

----------------------------------------------

Note added the next day: unfortunately, this isn't working *today*. Hex 1F is gone again, even using the settings listed above. So the problem appears to be erratic, as I feared.

pal
December 14th, 2012, 09:20 AM
Strange issue. I tried it on my Windows 7 system (with codepage 850).
How do you know which codepage you have?

chriz
December 14th, 2012, 09:52 AM
In a DOS box (or whatever the correct name for CMD.EXE might be these days)
the command


chcp displays the current codepage and lets you change it.

Christian

pal
December 14th, 2012, 09:57 AM
I have Windows 7. I don't know which codepage it is using, but current system locale is set to "English (United States)".

With VEDIT Ansi font, characters 1C to 1F are not displayed in ASCII table, but they are displayed when inserted in the edited text.
With VEDIT Oem font, all characters are shown as expected both in the ASCII table and in edited text.

However, while testing this, I found a strange phenomena.
If a text line contains both characters 96 and 127 (decimal), anywhere, in any order, the whole line is displayed in much smaller font than normally. Even if the smallest possible font is selected, the font becomes much smaller. However, the cursor moves as if the font would be normal size, and any text typed is inserted several characters left from the cursor position.
This only happens with VEDIT Oem font.

See the screenshot:

89

On the other hand, with VEDIT Ansi font, characters in range 0x10 to 0x1B seem to be from some other font. The characters are smaller and contain some line drawing and arrow symbols. If those characters are inserted in text, cursor position is wrong again if cursor is to the right from such character(s).

ian binnie
December 14th, 2012, 05:44 PM
You may be interested in my test program:-
http://binnie.id.au/Downloads/OEM_ANSI2UTF.zip

This is an easy way to see what glyphs are displayed in a font, which I wrote when doing my testing.

Create a shortcut to the program, set the Font as usual and run.
You can specify a CP on the command line to see what your system would display with this CP.

ian binnie
December 14th, 2012, 05:48 PM
You may need to change "Language for non-Unicode Programs"

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/int_pr_select_language_version.mspx?mfr=true

Regional Options/General/Set Default is the corresponding setting, and requires re-boot.
The "Your Locale" pulldown is different and can be changed without re-boot.

You can set System Locale / Language for non-Unicode Programs which determine OEM/ANSI Code Pages and fonts independently of other Regional Settings, which control date etc. This applies to both XP/2K.

I have Language for non-Unicode Programs set to "English (United States)" - which gives me OEM CP 437 ANSI CP 1252, although my Regional Options are set to "English (Australia)"

rejto
December 16th, 2012, 06:52 PM
Strange issue. I tried it on my Windows 7 system (with codepage 850).

The Terminal font doesn't show the 1F, but VEDIT OEM does as I expected.

A hardcopy is attached.

Christian

Dear wetware, dear all,

Thanks for the wetware experiments showing the discrepancy between Windows 7 and Win XP in displaying the VEDIT OEM character that represents hex 1F.

I am running Vedit on my Win XP machine(at home) and on my Win 7 machine(in my office). I believe that I did succeed in reproducing this discrepancy.

Here are the details. Following Christian's earlier suggestion I typed the {Misc, Command Prompt(Shell)} menu commands in Vedit. Then I typed chcp in the DOS window. I got the code page 437 message. Then I went back to Vedit and typed the {Misc, ASCII table} menu commands. It displayed the OEM code page table. Then I looked in the 1F position.
In XP I got a symbol and I take that this was the usual character/glyph. However in Win 7 I got the empty place.

Just to be on the safe side I also converted 1F hex to decimal and I got 1*16 + 15 = 31. So, I sure was glad to see 31 in the Vedit table.

For me this is strictly a curiosity. (And of course it is always fun to send Vedit on a mission impossible. I guess I almost succeeded.)

At the same time, I love to kill discrepancies. Any suggestions ?

Thanks,

-peter

wetware
December 17th, 2012, 09:18 AM
Scott:

I plan to ask the IT department here at work to let me keep my old XP laptop, solely for using VEDIT!


Gerard

Scott Lambert
December 17th, 2012, 11:40 AM
"I plan to ask the IT department here at work to let me keep my old XP laptop, solely for using VEDIT!"


Glad to hear it! Whatever you think of Vedit, you can't beat the tech support you get around here. ;)

Scott