GenoPro Home
GenoPro Home  |  Get Started With My Genealogy Tree  |  Buy  |  Login  |  Privacy  |  Search  |  Site Map
 
Part of the letter is replaced by a question mark.


https://support.genopro.com/Topic29596.aspx
Print Topic | Close Window

By Halan - Monday, December 26, 2011
I can not type some Cyrillic characters via the keyboard of the Sakha (Yakut) language.
These characters are present in the UTF-8.
Letters ҺӨҔҮҤ һөҕүҥ replaced in the program GenoPro on the question mark.
But these letters can be entered from notepad (text editor) through the service to copy-paste.
In the computer has a standard
Yakut (Russia) keyboard layout Windows 7.
Replacing the font does not bring positive results.
By Halan - Wednesday, December 28, 2011
I can answer specific questions Wink
By Halan - Wednesday, January 18, 2012
I would like to arrange the purchase of your product. To buy a license for the program, our university. But prevents this problem. Help, please.
ru: Хочу организовать покупку вашего продукта. Чтобы лицензию на программу купил наш университет. Но мешает эта проблема. Помогите, пожалуйста.
By GenoProSupport - Thursday, January 19, 2012
Sorry for the delay of my reply. Can you please post a screenshot of the dialog where the question mark is visible?
By Halan - Wednesday, February 15, 2012
http://support.genopro.com/Uploads/Images/aa954d8f-1cc2-4544-ada2-8a08.jpg
By Halan - Wednesday, February 15, 2012
http://support.genopro.com/Uploads/Images/acc401a4-5c61-4c7c-888e-d1a8.jpg
By Halan - Wednesday, February 15, 2012
http://support.genopro.com/Uploads/Images/4be994b9-b3c3-4ad1-950a-b5af.jpg
By Halan - Wednesday, February 15, 2012
http://support.genopro.com/Uploads/Images/d1b3e99e-cee2-4490-bfa2-72f3.jpg
By Halan - Wednesday, February 15, 2012
http://support.genopro.com/Uploads/Images/127befd9-0dcd-424f-b273-5759.jpg
By GenoProSupport - Friday, February 17, 2012
Can you please post a sample GenoPro (.gno) file, or send it by email to support at genopro dot com.  I will inspect the .gno file to see if it is a problem with the UTF-8 encoding, or it is a problem when displaying the text on the screen.
By Halan - Tuesday, February 21, 2012
one
GenoProSupport (17-Feb-2012)
Can you please post a sample GenoPro (.gno) file, or send it by email to support at genopro dot com.  I will inspect the .gno file to see if it is a problem with the UTF-8 encoding, or it is a problem when displaying the text on the screen.
Done.
By Halan - Thursday, February 23, 2012
The letter you received?
By GenoProSupport - Friday, February 24, 2012
Yes sir!  Sorry, I got busy on another tasks.  I am investigating it today.
By GenoProSupport - Friday, February 24, 2012
GenoPro is doing some work underneath to convert the character from the keyboard to Unicode.  The problem is the Yakut language does not have any code page, and I suspect the method MultiByteToWideChar() fails which results in question marks (?).

I made a special build for you at http://www.genopro.com/download/InstallGenoPro.Halan.exe

When you start this version of GenoPro, go to the View menu and make sure the MessageLog is visible (it is the last menu item).

When you type, you will see entries in the MessageLog.  Just copy & paste what you see on the MessageLog.  This way, I will be able to see what is being sent by Windows, and determine what should I do with the data.  I suspect UTF-8 is probably what is being sent.

Here is a sample of what to see.

http://support.genopro.com/Uploads/Images/2d399ff4-7d00-4a6e-82fe-8b2a.png
By Halan - Saturday, February 25, 2012
Thank you so much for trying to help.

ньдьҥҕөһү НьДьҤҔӨҺҮ:

ConvertWmCharToWmUniChar() - uChar=237 (0x000000ED), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=252 (0x000000FC), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=228 (0x000000E4), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=252 (0x000000FC), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=205 (0x000000CD), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=252 (0x000000FC), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=196 (0x000000C4), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=252 (0x000000FC), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=0
By GenoProSupport - Saturday, February 25, 2012
Thanks for the reply.  Unfortunately the character 63 is the question mark (?), meaning the original character from the keyboard was transformed (lost) to a ?.

Can you try typing the same text on a comment box (the code path is different), and you may get a different result.
By Halan - Saturday, February 25, 2012
http://support.genopro.com/Uploads/Images/543a9aa2-72ea-4dcd-878b-a68f.jpg
By Halan - Saturday, February 25, 2012
Entries in the comments do not appear on the screen.
By fbukolyi - Monday, February 27, 2012
Dan when you wrote 'The problem is the Yakut language does not have any code page,', what does it mean? According to m$ there are two codepages for Yakutsk, 0085 and 0485 (  http://www.microsoft.com/resources/msdn/goglobal/default.mspx?OS=Windows%207 ), both refer to ANSI 1251 and OEM 866.
By Halan - Tuesday, February 28, 2012
Apparently, it was a typo.
By GenoProSupport - Tuesday, February 28, 2012
fbukolyi (28-Feb-2012)
Dan when you wrote 'The problem is the Yakut language does not have any code page,', what does it mean? According to m$ there are two codepages for Yakutsk, 0085 and 0485 (  http://www.microsoft.com/resources/msdn/goglobal/default.mspx?OS=Windows%207 ), both refer to ANSI 1251 and OEM 866.

Thanks for the link.  This is very useful page.  I already had entered 1251 as the Code Page in the Language tab (Menu -> Tools -> Display Alphabets -> Language).

I made an update version, as my function CodePageFromLangID() returns was returning a zero value for the Yarkut language.  I am crossing my fingers this will work, because I suspect the WM_CHAR sent by Windows has already been translated.

By Halan - Tuesday, February 28, 2012
By Halan - Tuesday, February 28, 2012
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=33 (0x00000021), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=33 (0x00000021), lParam=131073 (0x00020001)
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=237 (0x000000ED), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=237 (0x000000ED), lParam=33751041 (0x02030001)
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=252 (0x000000FC), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=252 (0x000000FC), lParam=196609 (0x00030001)
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=228 (0x000000E4), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=228 (0x000000E4), lParam=33816577 (0x02040001)
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=252 (0x000000FC), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=252 (0x000000FC), lParam=262145 (0x00040001)
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=327681 (0x00050001)
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=393217 (0x00060001)
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=458753 (0x00070001)
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=524289 (0x00080001)
GetKeyboardLayout() returned 0x04850485
ConvertWmCharToWmUniChar() - uChar=63 (0x0000003F), cpKeyboardCodePage=1251
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=589825 (0x00090001)
WndProcEditW() - WM_CHAR: wParam=237 (0x000000ED), lParam=33751041 (0x02030001)
WndProcEditW() - WM_CHAR: wParam=252 (0x000000FC), lParam=196609 (0x00030001)
WndProcEditW() - WM_CHAR: wParam=228 (0x000000E4), lParam=33816577 (0x02040001)
WndProcEditW() - WM_CHAR: wParam=252 (0x000000FC), lParam=262145 (0x00040001)
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=327681 (0x00050001)
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=393217 (0x00060001)
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=458753 (0x00070001)
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=524289 (0x00080001)
WndProcEditW() - WM_CHAR: wParam=63 (0x0000003F), lParam=589825 (0x00090001)
By Halan - Tuesday, February 28, 2012
I quote the words of Michael Kyraһa (not a member of the forum):

How to reproduce the bug (Steps to reproduce):
1. In Windows Vista or 7 add a keyboard layout using the standard Control Panel. The language name is "Yakut (Russia)".
2. Start GenoPro
3. Focus into a text field (Person's First Name for example)
4. Switch your keyboard to Yakut and type "1234567890" using the top row on the keyboard (don't use numpad and don't use clipboard).
5. Check what you have just produced.
  5.1 If the string reads: "!ньдьҥҕөһү;:-=" - then the program works correctly.
  5.2 If the string reads: "!ньдь?????;:-=" - that's incorrect and you've reproduced the bug.
PS: Although code page 1251 is called Cyrillic. it never supported full Sakha (Yakut) alphabet. Microsoft assigned it by mistake (They promised to fix it in 8th version of Windows). But anyway, the only way to encode Sakha(Yakut) symbols is UTF-8, UTF-16 or other Unicode (multibyte) encodings.
By fbukolyi - Wednesday, February 29, 2012
In case if you have some time to read : http://www.ifapcom.ru/files/Documents/multiling_eng.pdf

on page 251 it is said: 

Fonts
The fonts are to contain the characters of the Cyrillic code table of the Unicode
standard, version no earlier than 5.1, with Russian letter glyphs and the following
glyphs of the officially recognised Yakut letters and letters of the smaller peoples of
the North residing in the Republic of Sakha (Yakutia):
Һ – CYRILLIC CAPITAL LETTER SHHA (code 04BA)
һ – CYRILLIC SMALL LETTER SHHA (code 04BB....

Maybe it is worth to try this as well: http://42.ykt.ru/stuffs/fonts.htm
By GenoProSupport - Wednesday, February 29, 2012
Unfortunately, I believe the bug is deeper than this.  Until GenoPro is recompiled as a native Unicode application, Windows will keep sending the question mark (?) character as WM_CHAR.  I have the feeling that all the non-Unicode applications have the same problem for the Yarkut language.
By Halan - Wednesday, February 29, 2012
GenoProSupport (29-Feb-2012)
Unfortunately, I believe the bug is deeper than this.  Until GenoPro is recompiled as a native Unicode application, Windows will keep sending the question mark (?) character as WM_CHAR.  I have the feeling that all the non-Unicode applications have the same problem for the Yarkut language.
Maybe refer to the Microsoft developers?
By Halan - Thursday, April 12, 2012
Is there something new?
By Halan - Thursday, May 10, 2012
Still I'm waiting for good news)))
By GenoProSupport - Monday, May 14, 2012
The problem is Windows sends the question mark, so GenoPro cannot do anything.  I am sure you get the same problem on many Windows programs, especially those applications which are using code pages.

The only fix is creating a native Unicode version of GenoPro.  This task alone requires several months of work.
By Halan - Sunday, October 19, 2014
Present here is the problem now is urgent. How to solve it?