微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UTF-8文本到剪贴板C

我一直在环顾四周如何带来一个string,

const char* output = "ヽ(⌐■_■)ノ♪♬";

到剪贴板。

SetClipboardData(CF_UNICODETEXT,hMem);

我已经尝试了MultiBytetoWideChar,但是我得到的只是噪声,也有矛盾的说法,你不能保存UTF-16LE到剪贴板(wchar_t)。 老实说,我只是困惑。 方向或代码样本会很好。

Windows CF_DIB到剪贴板中的CF_BITMAP

Java BufferedImage到剪贴板给IIOException

C剪贴板更新非常慢

以编程方式确定剪贴板源信息

C ++从Linux上的剪贴板获取string

直接从Windows剪贴板获取二进制数据

在Windows和OSX之间自动同步剪贴板

如何在lua中保存剪贴板(Windows)

从剪贴板中读取权限被拒绝

Linux上的Java剪贴板(仅限文本),一些程序可以读取,其他程序不能,为什么

Windows使用UTF-16LE。 该字符串应该用L前缀创建。 要使用UTF8,你可以用u8前缀声明字符串。 例如:

const char* text = u8"ヽ(⌐■_■)ノ♪♬E";

然后,您必须使用MultiBytetoWideChar将UTF8转换为UTF16并在WinAPI中使用。 请注意,要使用u8你需要像VS2015更新的编译器。

首先使用UTF16比较容易。 例如:

const wchar_t* text = L"ヽ(⌐■_■)ノ♪♬E"; int len = wcslen(text); HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE,(len + 1) * sizeof(wchar_t)); wchar_t* buffer = (wchar_t*)GlobalLock(hMem); wcscpy_s(buffer,len + 1,text); GlobalUnlock(hMem); OpenClipboard(NULL); EmptyClipboard(); SetClipboardData(CF_UNICODETEXT,hMem); CloseClipboard();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐