Ios NSString:处理基于UTF8的API
当我从UITextField获取类型化内容时,哪个字符集是NSString的默认字符集 我开发了一个应用程序,它将这些NSString发送到基于UTF8的REST-API。在后端,有一个基于utf8的MySQL数据库和一个基于utf8的varchar字段。 我的POST请求将字符串数据从iOS应用程序发送到服务器。通过GET请求,我从RESTAPI接收这些字符串 在应用程序中,所有内容都打印得很好。将特殊UTF-8字符(如ÄÖÜ)发送到服务器并接收回后,将正确显示这些字符 但是,当我进入RESTAPI服务器的mysql控制台,并对这些数据执行SELECT命令时,可以看到断字符Ios NSString:处理基于UTF8的API,ios,mysql,objective-c,utf-8,nsstring,Ios,Mysql,Objective C,Utf 8,Nsstring,当我从UITextField获取类型化内容时,哪个字符集是NSString的默认字符集 我开发了一个应用程序,它将这些NSString发送到基于UTF8的REST-API。在后端,有一个基于utf8的MySQL数据库和一个基于utf8的varchar字段。 我的POST请求将字符串数据从iOS应用程序发送到服务器。通过GET请求,我从RESTAPI接收这些字符串 在应用程序中,所有内容都打印得很好。将特殊UTF-8字符(如ÄÖÜ)发送到服务器并接收回后,将正确显示这些字符 但是,当我进入REST
根本原因可能是什么?苹果在哪个字符集中使用NSString?听起来好像是服务器问题。检查您正在使用的版本是否支持UTF-8,旧版本不支持。见: MySQL的utf8编码不同于正确的UTF-8编码。它不提供完全的Unicode支持 MySQL 5.5.3(2010年初发布)引入了一种称为utf8mb4的新编码,它映射到适当的UTF-8,因此完全支持Unicode NSString具有本质上不透明的内部表示形式
UITextField
方法text
返回一个NSString
NSData *textFieldUTF8Data = [textFieldInstance.text dataUsingEncoding: NSUTF8StringEncoding];
当您希望使用字符串中的数据发送到服务器时,请使用-(NSData*)dataUsingEncoding:(NSStringEncoding)encoding
并指定编码,例如NSUTF8StringEncoding
NSData *textFieldUTF8Data = [textFieldInstance.text dataUsingEncoding: NSUTF8StringEncoding];
听起来像是服务器问题。检查您正在使用的版本是否支持UTF-8,旧版本不支持。见: MySQL的utf8编码不同于正确的UTF-8编码。它不提供完全的Unicode支持 MySQL 5.5.3(2010年初发布)引入了一种称为utf8mb4的新编码,它映射到适当的UTF-8,因此完全支持Unicode NSString具有本质上不透明的内部表示形式
UITextField
方法text
返回一个NSString
NSData *textFieldUTF8Data = [textFieldInstance.text dataUsingEncoding: NSUTF8StringEncoding];
当您希望使用字符串中的数据发送到服务器时,请使用-(NSData*)dataUsingEncoding:(NSStringEncoding)encoding
并指定编码,例如NSUTF8StringEncoding
NSData *textFieldUTF8Data = [textFieldInstance.text dataUsingEncoding: NSUTF8StringEncoding];
听起来像是服务器问题。检查您正在使用的版本是否支持UTF-8,旧版本不支持。见: MySQL的utf8编码不同于正确的UTF-8编码。它不提供完全的Unicode支持 MySQL 5.5.3(2010年初发布)引入了一种称为utf8mb4的新编码,它映射到适当的UTF-8,因此完全支持Unicode NSString具有本质上不透明的内部表示形式
UITextField
方法text
返回一个NSString
NSData *textFieldUTF8Data = [textFieldInstance.text dataUsingEncoding: NSUTF8StringEncoding];
当您希望使用字符串中的数据发送到服务器时,请使用-(NSData*)dataUsingEncoding:(NSStringEncoding)encoding
并指定编码,例如NSUTF8StringEncoding
NSData *textFieldUTF8Data = [textFieldInstance.text dataUsingEncoding: NSUTF8StringEncoding];
听起来像是服务器问题。检查您正在使用的版本是否支持UTF-8,旧版本不支持。见: MySQL的utf8编码不同于正确的UTF-8编码。它不提供完全的Unicode支持 MySQL 5.5.3(2010年初发布)引入了一种称为utf8mb4的新编码,它映射到适当的UTF-8,因此完全支持Unicode NSString具有本质上不透明的内部表示形式
UITextField
方法text
返回一个NSString
NSData *textFieldUTF8Data = [textFieldInstance.text dataUsingEncoding: NSUTF8StringEncoding];
当您希望使用字符串中的数据发送到服务器时,请使用-(NSData*)dataUsingEncoding:(NSStringEncoding)encoding
并指定编码,例如NSUTF8StringEncoding
NSData *textFieldUTF8Data = [textFieldInstance.text dataUsingEncoding: NSUTF8StringEncoding];
如果通过“mysql控制台”,您指的是Windows中类似DOS的窗口,那么您需要:
命令“chcp”控制“代码页”。chcp 65001提供utf8,但也需要安装特殊的字符集。一些代码页
要在控制台窗口中设置字体:右键单击窗口标题→ 性质→ 字体→ 选择露西达控制台
另外,通过执行设置名称utf8mb4,告诉“控制台”您的字节是UTF8,如果通过“mysql控制台”,您指的是Windows中类似DOS的窗口,那么您需要:
命令“chcp”控制“代码页”。chcp 65001提供utf8,但也需要安装特殊的字符集。一些代码页
要在控制台窗口中设置字体:右键单击窗口标题→ 性质→ 字体→ 选择露西达控制台
另外,通过执行设置名称utf8mb4,告诉“控制台”您的字节是UTF8,如果通过“mysql控制台”,您指的是Windows中类似DOS的窗口,那么您需要:
命令“chcp”控制“代码页”。chcp 65001提供utf8,但也需要安装特殊的字符集。一些代码页
要在控制台窗口中设置字体:右键单击窗口标题→ 性质→ 字体→ 选择露西达控制台
另外,通过执行设置名称utf8mb4,告诉“控制台”您的字节是UTF8,如果通过“mysql控制台”,您指的是Windows中类似DOS的窗口,那么您需要:
命令“chcp”控制“代码页”。chcp 65001提供utf8,但也需要安装特殊的字符集。一些代码页
要在控制台窗口中设置字体:右键单击窗口标题→ 性质→ 字体→ 选择露西达控制台
另外,通过执行
设置名称utf8mb4
utf8mb4(顾名思义),告诉“控制台”您的字节是UTF8,并添加4字节的UTF8字符。这些出现在一些汉字、一些新的表情符号和一些其他情况下。如果您没有使用这些字符中的任何一个,那么utf8mb4是不相关的