当前位置:网站首页 > Haskell函数式编程 > 正文

字符串转编码格式(字符串转换编码)



本文介绍如何将各种 Visual C++ 字符串类型转换为其他字符串。

涵盖的字符串类型包括 、、、、、 和 。

在所有情况下,当转换为新类型时,将创建字符串的副本。 对新字符串所做的任何更改都不会影响原始字符串,反之亦然。

有关转换窄字符串和宽字符串的更多背景信息,请参阅窄字符串与宽字符串之间的转换。

要在 Visual Studio 2022 中运行示例,可创建新的 C++ Windows 控制台应用。 如果已安装 C++/CLI 支持,可创建 CLR 控制台应用 (.NET Framework)。

如果创建 CLR 控制台应用,不需要对编译器和调试器设置进行以下更改。 但是,需要将 添加到每个示例的顶部。

无论通过哪种方式,都要将 添加到“项目属性”>“链接器”>“输入”>“其他依赖项”

如果创建新的 C++ Windows 控制台应用以运行示例,请对项目进行以下更改:

  • 将 和 命令行参数添加到“项目属性”>“C++”>“命令行”>“其他选项”

开关与你创建 C++ Windows 控制台应用项目时设置的一些编译器开关冲突。 以下链接内容说明了可以在 IDE 中的哪些位置关闭存在冲突的开关:

  • 关闭 (将基本运行时检查设置为默认):“项目属性”>“C/C++”>“代码生成”>“基本运行时检查”>“默认”
  • 关闭 (异常处理模型):“项目属性”>“C/C++”>“代码生成”>“启用 C++ 异常”>“否”
  • 将 (调试信息格式)替换为 :“项目属性”>“C/C++”>“常规”>“调试信息格式”>“C7 兼容”
  • 关闭 (仅我的代码调试):“项目属性”>“C/C++”>“常规”>“支持仅我的代码调试”>“否”
  • 将调试器类型设置为混合:“项目属性”>“调试”>“调试器类型”>“混合(.NET Framework)”
  • 打开 “项目属性”>“链接器”>“调试”>“可调试程序集”>“是(ASSEMBLYDEBUG)”

此示例演示了如何从 转换为上面列出的字符串类型。 字符串(也称为 C 样式字符串)使用终止 null 来指示字符串的结尾。 C 样式字符串通常需要每个字符使用 1 个字节,但也可以使用 2 个字节。 在下面的示例中, 字符串有时被称为多字节字符串,因为字符串数据是从宽 Unicode 字符串转换而来的。 单字节和多字节字符 () 函数可以对 字符串进行操作

有关运行和调试此示例的信息,请参阅运行示例。

 
 

此示例演示了如何从 转换为其他字符串类型。 一些字符串类型(包括 )实现了宽字符格式。 若要在多字节和宽字符格式之间转换字符串,可以使用像 这样的单个函数调用或像 这样的类的构造函数调用。

有关运行和调试此示例的信息,请参阅运行示例。

 
 

此示例演示了如何从 转换为其他字符串类型。 对象封装宽字符 字符串。 字符串具有长度值,并且不使用 null 字符终止字符串,但要转换为的字符串类型可能需要终止 null 字符。

有关运行和调试此示例的信息,请参阅运行示例。

 
 

此示例演示了如何从 转换为其他字符串类型。 与 一样, 对象封装宽字符 字符串。 字符串具有长度值,并且不使用 null 字符终止字符串,但要转换为的字符串类型可能需要终止 null。

有关运行和调试此示例的信息,请参阅运行示例。

 
 

此示例演示了如何从 转换为其他字符串类型。 基于 数据类型,而该数据类型又取决于是否定义了符号 。 如果未定义 ,则将 定义为 ,并且 包含一个多字节字符串;如果定义了 ,则将 定义为 ,并且 包含一个宽字符串。

包含 类型并支持单字节或多字节字符串。 是宽字符版本。 和 不使用 来确定它们应该如何编译。 此示例中使用了 和 来阐明缓冲区大小分配和输出处理方面的细微差别。

有关运行和调试此示例的信息,请参阅运行示例。

 
 

此示例演示了如何从 转换为其他字符串类型。

有关运行和调试此示例的信息,请参阅运行示例。

 
 

此示例演示了如何从宽字符 System::String 转换为其他字符串类型。

有关运行和调试此示例的信息,请参阅运行示例。

 
 

传统的 C 和 Windows 应用在处理窄字符串和宽字符串时使用代码页而不是 Unicode 编码。

.NET 字符串是 UTF-16,但 ATL 的 是一个窄字符串,由 Win32 函数执行从宽到窄的转换。 将 C 样式的 (C 样式的 是 .NET )转换为字符串时,会调用相反的 Win32 函数 。

这两个函数都依赖于代码页的 Windows 概念;不是区域性的 .NET 概念。 若要更改系统代码页,请通过以下方式使用区域设置:使用“控制面板”> 在搜索框中输入 >“区域(更改日期、时间或数字格式)”>“管理”>“更改系统区域设置”

在 语言版本的 Windows 上,代码页默认为 1033。 如果安装其他语言的 Windows,它将具有不同的代码页。 可以使用控制面板来更改它。

执行宽到窄转换的方式与 执行窄到宽转换的方式不一致。 将 (也就是使用当前线程代码页,)传递给收缩转换方法。 但是 将 (也就是使用当前系统代码页)传递给扩大转换方法。 如果系统和线程代码页不匹配,就会导致往返数据损坏。

为了协调这种差异,请使用常量 () 获取转换以使用 (如 .NET)而不是 。 有关详细信息,请参阅 。

另一种方法是使用 调用 。 使用返回的 创建一个 。 然后,使用 获取要在转换中使用的代码页。

ATL 和 MFC 字符串转换宏
与 C 样式字符串相关的 操作
如何:将标准 转换为
如何:将 转换为标准
如何:将 转换为 或
使用 进行编程


、、
、、
(C++/CLI)

到此这篇字符串转编码格式(字符串转换编码)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 简单好玩的编程代码简单(简单编程代码入门大全)2025-03-05 10:27:08
  • 淘宝支付方式怎么设置(淘宝支付方式怎么设置怎么改)2025-03-05 10:27:08
  • 支付方式怎么更换手机号(如何更换支付方式)2025-03-05 10:27:08
  • 一级什么是一级标题二级标题三级标题格式(什么是一级标题 二级标题 三级标题)二级什么是一级标题二级标题三级标题格式(什么是一级标题 二级标题 三级标题)(一级什么是一级标题二级标题三级标题格式(什么是一级标题 二级标题 三级标题)二级什么是一级标题二级标题三级标题格式(什么是一级标题 二级标题 三级标题)三级什么是一级标题二级标题三级标题格式(什么是一级标题 二级标题2025-03-05 10:27:08
  • 卸载程序快捷方式(卸载程序快捷命令)2025-03-05 10:27:08
  • 淘宝优先支付方式怎么设置(淘宝优先支付方式怎么设置不了)2025-03-05 10:27:08
  • 文件打开目录(打开目录文件的函数)2025-03-05 10:27:08
  • pcp文件是什么意思(pcp是什么格式文件)2025-03-05 10:27:08
  • 打开文件目录的快捷键(打开目录文件的函数)2025-03-05 10:27:08
  • pivot_table函数(pivot_table函数 行序不对)2025-03-05 10:27:08
  • 全屏图片