0

我有我的 certrequest 作为 PEM base64 数据。请参阅下面的数据。

1) 我的理解是这是一种 ASCII 数据类型,而不是 UNICODE 格式。请澄清。

----- BEGIN NEW CERTIFICATE REQUEST ----- MIIBTjCBuAIBADARMQ8wDQYDVQQDEwZ3dTAwMzEwgZ0wDQYJKoZIhvcNAQEBBQAD gYsAMIGHAoGBAKP48eljetv3fVicT6g6hKjmLpsySJaZ / NnepEJEqtQQNbwsluhW yWxhHWzPoNPV9uqjZBW7EnqYjxyPp1A0vOK35uxmmcNrgmuSjO1WBkD0YVZwzh2u OovRCOwJKklQtJnQWoM + yT8CyBVk7raVJOrLDMC8FR5AMknVCIlt7HppAgEDoAAw DQYJKoZIhvcNAQEFBQADgYEAAK5G10e39GxiNiPXdrOAwtuIiLd1UTWn3VYY7nYY 74LhydUBjo0Xi6HBTTNVlPNoRB9GOe5P1Qgq0EJ6gLIriFY + Gxdl2Y4lSo7FmpxB + 87bRCLpC3mxQltNm97ZysmS4I4diYhPDSS / 2acKeH2cBgAtQVG9KsuZ41qxUQ10 EY8 = ----- END NEW CERTIFICATE REQUEST -----

2) 如果上述数据是 ASCII 格式,我如何将其转换为 BSTR,因为 ICertRequest2::Submit 要求数据是 unicode 字符串。

3) 我可以将 ASCII 数据直接转换为 BSTR

谢谢拉吉

4

2 回答 2

0

US-ASCII 是 UTF-8 的子集。任何 ASCII 字符的编码形式都是 UTF-8 编码,因此不需要转换。

只需按原样传递字符串,设置CR_IN_BASE64HEADER标志。

于 2009-06-11T17:57:45.923 回答
0

任何一个:

  1. MultiByteToWideChar在调用之前使用SysAllocString(或SysAllocStringLen

  2. 使用_bstr_tor CComBSTRwhich 是 BSTR 的 C++ 包装器。

于 2009-06-12T09:25:31.687 回答