You are the first person (after idontknow how many years), who gives any feedback about the -8cp option… :D
With the Conv852437=8 setting I use the (default) ISO-8859-2 codepage and I haven't really tested the -8cp option.
So, it works? :)
No such mpxplay.ini setting. Nobody has needed it yet…
Use Conv852437=9 and a batch file: create an MPXP.BAT with a "mpxplay.exe -8cp CP1251 %1 %2 %3 %4" line.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I always first:)
Thank you very much your advice helped me, and it works! (only-8ucp option) …
Works fine with two encodings 1251 and UTF-16!
Please enable this option in the ini file!
and for some reason do not want to convert the two russian letters "Р" and "С":)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, it's -8ucp, not -8cp. "Copy 'n' paste" bug… :)
Currently the default setting is Conv852437=8, this converts UTF8 and UTF16 strings to ISO-8859-2 charset. This is also not really good, just I have no better idea for the UTF decoding…
The default WinChars/DOSchars are configured for the hungarian language. I don't think so that it's a good idea to enable it by default (with the Conv852437=9 setting)…
(btw. the "Conv852437" is the old name/method of this function, just I haven't changed it)
Historically that we are both audio files with Unicode and Windows-1251 tags. Windows-1251 differs from the ISO 8859-5 characters are shifted to 16 … that will lead to incorrect display tags with 8 bit encoding…
I certainly understand what the problem after conversion UTF16 -> WIN, once again converts but from UT8 -> WIN, unfortunately russian character "P" has the code 0xD0 what is perceived as the beginning of UTF-8…
Interest in the audio file has an identification UTF16 or UTF-8 tag? to two times not convert!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Maybe instead of options WinChars, and DosChars better to use a table top 128 characters?
because that not every editor can create a file containing the two character encoding…
I certainly understand what the problem after conversion UTF16 -> WIN, once again converts but from UT8 -> WIN, unfortunately russian character "P" has the code 0xD0 what is perceived as the beginning of UTF-8…
This is false…
1. UTF strings are converted to the selected (-8ucp) codepage. (multibyte to one char)
2. If the WinChars to DosChars conversion is enabled (-8 or Conv852437=9), the program searches and replaces the characters, which are configured (written) in the WinChars and DosChars lines (searches for WinChar(s), replaces with the DosChar from the same char position).
I've made the latter conversion, because I use normal us-ascii codepage, which doesn't contain the all hungarian characters, I just convert them to a similar ones.
I don't know how should work this stuff at you. You have to find the correct settings. I know it's an "advanced" thing…
You said first, that with the new WinChars/DosChars config the non-UTF (single win-char) strings are displayed correctly, only the UTF16 strings are bad. Then I (still) assume that the target codepage (-8ucp) is wrong…
It's also possible, that my CP1251 table is wrong. I will look around…
btw. Thank You for that page!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Interest in the audio file has an identification UTF16 or UTF-8 tag? to two times not convert!
There are a lot of variations in the "identification". It's handled properly at ID3V2 header, ID3V1 always use local-charset (non UTF), but old OggVorbis files can cause problems, because from the v1.0 Vorbis uses UTF8, but earlier encoders use(d) simple local charset. And this change is not "signed" in the stream… I've made the -8uv option for this…
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
With your table cp1251 all right, I looked CHARMAPS.H!
two russian character "P", "C" - exactly match 0x0420, 0x0421(multibyte),
ie 0x0D0, 0x0D1(one char), an error here can not be! but they turn into one letter 0x0411 ie 0x0C1 …
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am now disabled WinChars, and DosChars - Conv852437 = 8
still a combination of two characters (UTF16) 0x0420 and 0x0421 give 0x0C1
two 0x0420 and 0x0422 give 0x0C2
two 0x0420 and 0x0423 give 0x0C3
two 0x0420 and 0x0424 give 0x0C4
etc.
means this error before WinChars to DosChars convert …
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Possible to force the UTF16 without UTF8?
may be still matter in an automatic determination UTF16 /UTF8 ?
in the manual, I found an interesting option for me -8ccp (instead WinChars to DosChars)
tried mpxplay.exe -8ucp CP1251 -8ccp CP866
and mpxplay.exe -8ucp CP1251 -8ccp 866
but nothing is converted, this option is simply ignored …
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
1. This is not that file (5. comment), I need all russian characters in UTF16.
2. Which program do you use for tagging?
There is (you can see) a FFFEh in the tags. This also says, that the string is UTF16-LE. It's not need (I mean, it's ignored), because there is a text-enc-type in the id3v2-frame-headers, that selects really the UTF decoding type in Mpxplay.
So that 2 byte (FFFEh) is skipped, but there is an additional 3. byte here, a space (20h), that's not handled by Mpxplay. This causes the problem at the latest file.
Winamp and Foobar can handle these tags, so I should do something with it…
btw. I couldn't find yet any description about the using of UTF strings in ID3V2 (I have an ID3V2 doc, but it doesn't contain anything about this), I'll try to find something…
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was wrong in the post 17. , but you were right in the 7. already… :D
The -8ucp option enables/forces an extra UTF8 conversion (control.c)… it's corrected now (next release within 1-2 weeks)…
I didn't see this bug, because I use the default ISO-8859-2, without using the -8ucp command-line option…
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thank you for your solution!
And the last question on encoding (console/text display output) how to use -8ccp NUM ??? in the 14.
-8ccp I think is not working…
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
There is an WIN-api function to change the codepage of the console window (ie: -8ccp 852). But it doesn't work at me under WinXP. I've just left it in the program. I hoped that it will work at somebody, but it seems, it doesn't work at all… I mean, I also don't know how should it work…
Maybe I will write a comment in readme.txt, that this option probably has no effect. (and this function doesn't exist in the DOS versions, only in the Win32 one)
There are a copule of win-api functions, which are missing or don't work. The mouse-wheel handling is simply missing from the console api.
btw. the -8uv option has the same bug like -8ucp (also corrected)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If replace win-api functions to internal function, and as a symbol table use additional tables such as in 9 for 866 codepage? and this tables write to charmaps.h ?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was wrong again. The -8ccp function works properly in the win32 version.
Using -8ucp CP866 -8ccp 866 options and Conv852437=8 setting, I see properly the russian UTF16 chars in Mpxplay under my hungarian XP… :)
For the hungarian text I did try the "-8ucp CP852 -8ccp 852". The UTF16 chars are displayed correctly.
BUT because the -8ucp option has effect at the UTF decodings only, the non-UTF CP1250 chars are bad with this setting.
Yeah, this is wrong/missing. I have to think on it…
(I don't think so that I should add anything to charmaps.h, rather I will generate a conv table inline, but I have to change the config method, perhaps with a source and target codepage setting)
btw. I originally made the WinChars/DosChars conversion (instead of what I wrote above), because I use CP1250 under Win and CP437 under DOS, but there's no valid/standard conversion between these codepages. (some hungarian chars are missing from CP437)
But if there is a correct way between two codepages (like 1251 and 866, or 1250 and 852), we can generate a conversion table for them…
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
strange but I have a russian xp. only where the characters display correctly only in the name of the window:) but I-8ccp 866 still does not work! Why, then use-8ccp 866 if all the conversion performs -8ucp CP866? I apologize for my English :))
"mpxplay.exe -8ucp CP866 -8ccp 866" = "mpxplay.exe -8ucp CP866"
.
the whole point is to make
UNICODE-> WIN-> DOS and not UNICODE -> DOS!!!
should probably be so
for russian
UTF16-> WIN1251-> DOS866 or UTF8-> WIN1251-> DOS866 or WIN1251-> DOS866
hungarian UTF16-> WIN1250-> DOS852 or UTF8-> WIN1250-> DOS852 or WIN1250-> DOS852
I'll think about correct way how to convert win to dos thru unicode … be a way :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Can Mpxplay (DOS version) read and convert Russian letters from win-1251 or Unicode to the 866 code page in DOS?
Seems win1251 works, but UTF-16 tag is still a problem…
Conv852437 =1;
WinChars ="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
DosChars =" Ўў_¤_с……………"; all alphabet in dos encoding…
in "moreinfo.txt" I found the function "CPNAMEs (codepages) for-8cp option"
how to write -8cp CP1251 to "mpxplay.ini"?
You are the first person (after idontknow how many years), who gives any feedback about the -8cp option… :D
With the Conv852437=8 setting I use the (default) ISO-8859-2 codepage and I haven't really tested the -8cp option.
So, it works? :)
No such mpxplay.ini setting. Nobody has needed it yet…
Use Conv852437=9 and a batch file: create an MPXP.BAT with a "mpxplay.exe -8cp CP1251 %1 %2 %3 %4" line.
I always first:)
Thank you very much your advice helped me, and it works! (only-8ucp option) …
Works fine with two encodings 1251 and UTF-16!
Please enable this option in the ini file!
and for some reason do not want to convert the two russian letters "Р" and "С":)
Yes, it's -8ucp, not -8cp. "Copy 'n' paste" bug… :)
Currently the default setting is Conv852437=8, this converts UTF8 and UTF16 strings to ISO-8859-2 charset. This is also not really good, just I have no better idea for the UTF decoding…
The default WinChars/DOSchars are configured for the hungarian language. I don't think so that it's a good idea to enable it by default (with the Conv852437=9 setting)…
(btw. the "Conv852437" is the old name/method of this function, just I haven't changed it)
"for some reason do not want to convert the two russian letters "Р" and "С" "
Try ISO-8859-5 codepage, not CP1251.
http://msdn.microsoft.com/en-us/goglobal/bb964656.aspx
Historically that we are both audio files with Unicode and Windows-1251 tags. Windows-1251 differs from the ISO 8859-5 characters are shifted to 16 … that will lead to incorrect display tags with 8 bit encoding…
I certainly understand what the problem after conversion UTF16 -> WIN, once again converts but from UT8 -> WIN, unfortunately russian character "P" has the code 0xD0 what is perceived as the beginning of UTF-8…
Interest in the audio file has an identification UTF16 or UTF-8 tag? to two times not convert!
If you do not mind I made a little site dedicated to russian localization of your program and FreeDOS, I have posted two images of floppy disks …
FreeDOS + Mpxplay + DOS/4G
FreeDOS + Mpxplay + DOS/32A
http://mpxplay.narod.ru/
Maybe instead of options WinChars, and DosChars better to use a table top 128 characters?
because that not every editor can create a file containing the two character encoding…
for example 1251 -> 866(ru dos)
3F,3F,27,3F,22,3A,C5,D8,3F,25,3F,3C,3F,3F,3F,3F,
3F,27,27,22,22,07,2D,2D,3F,54,3F,3E,3F,3F,3F,3F,
FF,F6,F7,3F,FD,3F,B3,15,F0,63,F2,3C,BF,2D,52,F4,
F8,2B,49,69,3F,E7,14,FA,F1,FC,F3,3E,3F,3F,3F,F5,
80,81,82,83,84,85,86,87,88,89,8A,8B,8C,8D,8E,8F,
90,91,92,93,94,95,96,97,98,99,9A,9B,9C,9D,9E,9F,
A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,
E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,EA,EB,EC,ED,EE,EF
???
I certainly understand what the problem after conversion UTF16 -> WIN, once again converts but from UT8 -> WIN, unfortunately russian character "P" has the code 0xD0 what is perceived as the beginning of UTF-8…
This is false…
1. UTF strings are converted to the selected (-8ucp) codepage. (multibyte to one char)
2. If the WinChars to DosChars conversion is enabled (-8 or Conv852437=9), the program searches and replaces the characters, which are configured (written) in the WinChars and DosChars lines (searches for WinChar(s), replaces with the DosChar from the same char position).
I've made the latter conversion, because I use normal us-ascii codepage, which doesn't contain the all hungarian characters, I just convert them to a similar ones.
I don't know how should work this stuff at you. You have to find the correct settings. I know it's an "advanced" thing…
You said first, that with the new WinChars/DosChars config the non-UTF (single win-char) strings are displayed correctly, only the UTF16 strings are bad. Then I (still) assume that the target codepage (-8ucp) is wrong…
It's also possible, that my CP1251 table is wrong. I will look around…
btw. Thank You for that page!
I don't see difference between playlist\charmaps.h -> mapping_unicode_cp1251 and
http://msdn.microsoft.com/en-us/goglobal/cc305144.aspx
I don't know where can fail those chars…
Interest in the audio file has an identification UTF16 or UTF-8 tag? to two times not convert!
There are a lot of variations in the "identification". It's handled properly at ID3V2 header, ID3V1 always use local-charset (non UTF), but old OggVorbis files can cause problems, because from the v1.0 Vorbis uses UTF8, but earlier encoders use(d) simple local charset. And this change is not "signed" in the stream… I've made the -8uv option for this…
With your table cp1251 all right, I looked CHARMAPS.H!
two russian character "P", "C" - exactly match 0x0420, 0x0421(multibyte),
ie 0x0D0, 0x0D1(one char), an error here can not be! but they turn into one letter 0x0411 ie 0x0C1 …
I am now disabled WinChars, and DosChars - Conv852437 = 8
still a combination of two characters (UTF16) 0x0420 and 0x0421 give 0x0C1
two 0x0420 and 0x0422 give 0x0C2
two 0x0420 and 0x0423 give 0x0C3
two 0x0420 and 0x0424 give 0x0C4
etc.
means this error before WinChars to DosChars convert …
Possible to force the UTF16 without UTF8?
may be still matter in an automatic determination UTF16 /UTF8 ?
in the manual, I found an interesting option for me -8ccp (instead WinChars to DosChars)
tried mpxplay.exe -8ucp CP1251 -8ccp CP866
and mpxplay.exe -8ucp CP1251 -8ccp 866
but nothing is converted, this option is simply ignored …
Can you send me that small (64kbit) MP3 file on email? (see readme.txt for my email address and sending method)
Put it in a zip. thnx
direct link to the file
http://mpxplay.narod.ru/mp.mp3
1. This is not that file (5. comment), I need all russian characters in UTF16.
2. Which program do you use for tagging?
There is (you can see) a FFFEh in the tags. This also says, that the string is UTF16-LE. It's not need (I mean, it's ignored), because there is a text-enc-type in the id3v2-frame-headers, that selects really the UTF decoding type in Mpxplay.
So that 2 byte (FFFEh) is skipped, but there is an additional 3. byte here, a space (20h), that's not handled by Mpxplay. This causes the problem at the latest file.
Winamp and Foobar can handle these tags, so I should do something with it…
btw. I couldn't find yet any description about the using of UTF strings in ID3V2 (I have an ID3V2 doc, but it doesn't contain anything about this), I'll try to find something…
http://en.wikipedia.org/wiki/ID3
http://en.wikipedia.org/wiki/UTF-16
http://en.wikipedia.org/wiki/Byte_order_mark
I don't see FFFE20h and FF00FE20h (made by Foobar) in the latest doc, only found this:
http://en.wikipedia.org/wiki/Zero-width_non-breaking_space
But this seems to be an other thing…
I updated the file http://mpxplay.narod.ru/mp.mp3 http://mpxplay.narod.ru/mp.zip
I saved the file with a winamp 5.572
I was wrong in the post 17. , but you were right in the 7. already… :D
The -8ucp option enables/forces an extra UTF8 conversion (control.c)… it's corrected now (next release within 1-2 weeks)…
I didn't see this bug, because I use the default ISO-8859-2, without using the -8ucp command-line option…
Thank you for your solution!
And the last question on encoding (console/text display output) how to use -8ccp NUM ??? in the 14.
-8ccp I think is not working…
There is an WIN-api function to change the codepage of the console window (ie: -8ccp 852). But it doesn't work at me under WinXP. I've just left it in the program. I hoped that it will work at somebody, but it seems, it doesn't work at all… I mean, I also don't know how should it work…
Maybe I will write a comment in readme.txt, that this option probably has no effect. (and this function doesn't exist in the DOS versions, only in the Win32 one)
There are a copule of win-api functions, which are missing or don't work. The mouse-wheel handling is simply missing from the console api.
btw. the -8uv option has the same bug like -8ucp (also corrected)
If replace win-api functions to internal function, and as a symbol table use additional tables such as in 9 for 866 codepage? and this tables write to charmaps.h ?
I was wrong again. The -8ccp function works properly in the win32 version.
Using -8ucp CP866 -8ccp 866 options and Conv852437=8 setting, I see properly the russian UTF16 chars in Mpxplay under my hungarian XP… :)
For the hungarian text I did try the "-8ucp CP852 -8ccp 852". The UTF16 chars are displayed correctly.
BUT because the -8ucp option has effect at the UTF decodings only, the non-UTF CP1250 chars are bad with this setting.
Yeah, this is wrong/missing. I have to think on it…
(I don't think so that I should add anything to charmaps.h, rather I will generate a conv table inline, but I have to change the config method, perhaps with a source and target codepage setting)
btw. I originally made the WinChars/DosChars conversion (instead of what I wrote above), because I use CP1250 under Win and CP437 under DOS, but there's no valid/standard conversion between these codepages. (some hungarian chars are missing from CP437)
But if there is a correct way between two codepages (like 1251 and 866, or 1250 and 852), we can generate a conversion table for them…
strange but I have a russian xp. only where the characters display correctly only in the name of the window:) but I-8ccp 866 still does not work! Why, then use-8ccp 866 if all the conversion performs -8ucp CP866? I apologize for my English :))
"mpxplay.exe -8ucp CP866 -8ccp 866" = "mpxplay.exe -8ucp CP866"
.
the whole point is to make
UNICODE-> WIN-> DOS and not UNICODE -> DOS!!!
should probably be so
for russian
UTF16-> WIN1251-> DOS866 or UTF8-> WIN1251-> DOS866 or WIN1251-> DOS866
hungarian UTF16-> WIN1250-> DOS852 or UTF8-> WIN1250-> DOS852 or WIN1250-> DOS852
I'll think about correct way how to convert win to dos thru unicode … be a way :)