Articles of wstring

endl不能使用wstring(unicode)

这里是代码: std::ofstream f("file1.txt"); f<<"123"<<std::endl<<"456"; //(*1) /*std::stringstream ordinary_strstream; This works too ordinary_strstream<<"123"<<'\n'<<"456"; f<<ordinary_strstream.str();*/ std::wstringstream s; s<<L"123"<<std::endl<<L"456"; //(*2) s<<L"123"<<L"\n"<<L"456"; //(*3) s<<"123"<<WCHAR(13)<<WCHAR(10)<<"456";//(*4) HANDLE h =CreateFileW(L"file2.txt", GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); ULONG l; WriteFile(h, s.str().c_str(), s.str().length() * 2, &l, NULL); 在(* 1)的情况下有一个换行符,在(* 2)和(* 3)中,我在file2.txt中看不到换行符。 在(* 3)中有一个换行符。 我使用notepad.exe进行浏览。 hex编辑器不显示0x0D字节,只有0x0A 。 我应该如何正确把换行符的Unicode文本文件? 谢谢。

在加载c ++文件期间UTF8加扰

我知道加载unicode是一个有点劳累的点,但我不明白如何将解决scheme提交给他人解决我的问题。 我有一个Win7 / C ++ / DirectX9 GUI库,可以在屏幕上显示文本。 我以前从来没有遇到过问题,因为它只用于西欧语言。 现在我必须和匈牙利一起使用,这让我很头疼! 我特别的问题是加载在该语言中find的特殊字符。 以此为例,FELNŐTTEKNEK,意思是成人。 如果我将这个string硬编码到我的应用程序,它正确呈现: guiTitle->SetText( L"FELNŐTTEKNEK" ); 这将string存储为std :: wstring,使用ID3DXFont :: DrawTextW()进行呈现。 这也certificate我select的字体Futura CE能够呈现特殊字符(CE =中欧)。 到现在为止还挺好。 接下来,我只是希望能够从文本文件中加载文本。 没什么大不了。 但结果很糟糕! 特殊Ő被另一个字符replace,主要是Å或甚至两个字符如Å(第二个字符通常不可打印) 我已经确保通过input文本文件被编码为UTF-8,并天真地试图加载它: wifstream f("data/language.ini"); wstring w; getline( f, w ); guiTitle->SetText( w ); 不知何故,我仍然在争论。 我是否以UTF-8加载? 有没有办法确保这一点? 我只需要确保在文本编辑器中显示文本的宽string。 任何援助最感激地收到。 硅

我如何在Linux API中使用wstring?

我想在Linux中开发一个应用程序。 我想使用wstring beacuse我的应用程序应该支持unicode,我不想使用UTF-8string。 在Windows操作系统中,使用wstring很容易。 因为任何ANSI API都有一个Unicode格式。 例如有两个CreateProcess API,第一个API是CreateProcessA,第二个API是CreateProcessW。 wstring app = L"C:\\test.exe"; CreateProcess ( app.c_str(), // EASY! …. ); 但似乎在Linux中使用wstring是复杂的! 例如在Linux中有一个叫做parport_open的API(这只是一个例子)。 我不知道如何发送我的wstring到这个API(或者像接受string参数的parport_open这样的API)。 wstring name = L"myname"; parport_open ( 0, // or a valid number. It is not important in this question. name.c_str(), // Error: because type of this parameter is char* not wchat_t* …. ); […]

在C ++中处理UTF-8

要了解C ++是否是我的项目的正确语言,我想testingUTF-8的function。 根据参考资料,我build立了这个例子: #include <string> #include <iostream> using namespace std; int main() { wstring str; while(getline(wcin, str)) { wcout << str << endl; if(str.empty()) break; } return 0; } 但是当我input一个UTF-8字符时,它会出错: $ > ./utf8 Hello Hello für f $ > 不仅不打印ü ,而且还会立即退出。 gdb告诉我没有崩溃,但是一个正常的退出,但我觉得很难相信。

在C ++中的可移植wchar_t

在C ++中是否有可移植的wchar_t? 在Windows上,它的2个字节。 一切都是4个字节。 我想在我的应用程序中使用wstring,但是如果我决定将它移植到端口上,会造成问题。