|
Nemanja Trifunovic wrote: here is 1-1 mapping between UTF-16 (wide chars on Windows) and UTF-8 (both are simply different encoding forms for Unicode character set).
You're right indeed.
Nemanja Trifunovic wrote: On the other hand, there is no 1-1 mapping between Unicode and CP1250.
There is 1-1 mapping for the subset representing Czech characters, I suppose.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
CPallini wrote: There is 1-1 mapping for the subset representing Czech characters, I suppose.
Correct. It is just not always easy to be sure that the wide string contains only the Czech subset.
|
|
|
|
|
George_George wrote: I need to know the wide character (unicode) and multibyte (UTF-8) values of a character string of czech.
Is this string provided as a user input, or you are dealing with a hard-coded string literal?
Anyway, to get a UTF-8 representation of a Unicode string, there is no need to change the system language. Either use WideCharToMultiByte with codepage set to CP_UTF8, or use a third-party library (like the one you see in my signature )
|
|
|
|
|
Thanks Nemanja,
Nemanja Trifunovic wrote: Anyway, to get a UTF-8 representation of a Unicode string, there is no need to change the system language. Either use WideCharToMultiByte with codepage set to CP_UTF8, or use a third-party library (like the one you see in my signature )
1. Change system language settings before invoking WideCharToMultiByte, right?
2. Should I use UTF-8 code page or use some Czech code page?
regards,
George
|
|
|
|
|
George_George wrote: 1. Change system language settings before invoking WideCharToMultiByte, right?
Don't
George_George wrote: 2. Should I use UTF-8 code page or use some Czech code page?
UTF-8
|
|
|
|
|
Thanks Nemanja!
From your reply and CPallini's reply, I am confused.
This is what you mentioned, and you think using UTF-8 code page to convert wide character to multibyte character is ok.
Nemanja Trifunovic wrote: George_George wrote:
2. Should I use UTF-8 code page or use some Czech code page?
UTF-8
2.
This is what CPallini mentioned,
http://www.codeproject.com/script/Forums/View.aspx?fid=1647&select=2401259&fr=107#xx2401259xx[^]
He said using UTF-8 is not always safe and we should use code page 1250?
regards,
George
|
|
|
|
|
George_George wrote: This is what you mentioned, and you think using UTF-8 code page to convert wide character to multibyte character is ok.
What I say is simply the following: Both UTF-16 (stored in "wide characters") and UTF-8 (stored in "multibyte characters") are different encoding forms of the same character set (Unicode) and there is absolutelly no risk of conversion loss between the two. In fact, you don't even need to use WinAPI to do the conversion - just take a look at my utf8 - cpp library to see how it is done manually.
|
|
|
|
|
Dear all,
we can invoke our VC++ dlls from backgroud services.. like from "services.msc",
i have adoubt when we are writing such services what should be taken care so that it comes under "services.msc" not in "dcomcnfg"
and what is the difference in those two types ....
Thanks in advance
T@SU
|
|
|
|
|
After reading your post several times I have no idea what you trying to say or ask. Since no one else replied to you I imagine others are having similar difficulties understanding you.
led mike
|
|
|
|
|
I have a requirement where we need to connect to unix machine, run some commands and capture output(on the lines of what "putty" does).
I wanted to know how it can be accomplished through C++ code. We can use SSH, Rlogin connectivity.
Thanks
Amit
|
|
|
|
|
|
Thanks a ton Maxwell!
It really helped.
|
|
|
|
|
Suppose the full path is :
C:\Program Files\codeproject.txt
I want to extract the file name codeproject.txt .
Of course I can use CString class to find the last '\', and then Mid to get the filename, but is there some API can do this daily job?
Thank you
A Chinese VC++ programmer
|
|
|
|
|
Since you want to use API (Windows SDK), the function below meets your need.
But CFile is even convenient for you though.
BOOL GetFileInformationByHandleEx(
HANDLE hFile,
FILE_INFO_BY_HANDLE_CLASS cls,
LPVOID info,
DWORD bufsize
);
FILE_NAME_INFO MyStruct = {0};
bool b = GetFileInformationByHandleEx(hFile, FileNameInfo, &MyStruct, sizeof(FILE_NAME_INFO));
Maxwell Chen
|
|
|
|
|
OK, Thank you Maxwell Chen
Both of the ways you suggested are convenient. But the question is all of them need a file HANDLE. I just want to get the filename given its fullpath.
A Chinese VC++ programmer
|
|
|
|
|
|
Thank you nave!
I think I have got the answer:_splitpath
A Chinese VC++ programmer
|
|
|
|
|
You can use the CFileFind
CFileFind cf;
cf.FindFile("C:\\Program Files\\codeproject.txt");
cf.FindNext();
CString strFileName = cf.GetFileName();
Rgds
Abhay..
|
|
|
|
|
zengkun100 wrote: I think I have got the answer:_splitpath
MSDN Says: _splitpath is deprecated because more secure versions are available, see _splitpath_s , _wsplitpath_s .
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Though some API's have been mentioned above by our codeproject friends, u can also write such functions. If u know 'C' language very well and ofcourse, its basics (people having lot of experience also doesn't know the basics), u can easily write such functions.
Though u got the API, still I'll strongly recommend u to try writing such function.
Come online at:-
jubinc@skype
|
|
|
|
|
Don Box wrote: still I'll strongly recommend u to try writing such function.
Less u write, less will be the bugs...
|
|
|
|
|
If basics are not clear and don't have confidence, then better don't write (such simple function) and drop the programming profession.
Come online at:-
jubinc@skype
|
|
|
|
|
cool man..I just said one truth regrding the programming field.
How ever I still remeber one bug while trying to extract the file name from path. We were extracting the file name by reverse finding the "\". But later a bug was reported and reason was that, in one secnario in the path input to that function, instead of "\", seperator was "/"
|
|
|
|
|
That's right Naveen.
BTW, how many yrs of experience do u have in VC++? Do u have any Skype/Yahoo id?
Come online at:-
jubinc@skype
|
|
|
|
|
Don Box wrote: Do u have any Skype/Yahoo id?
Yahoo only... Have send my chat id to your mail box. check
|
|
|
|