Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSString:处理基于UTF8的API_Ios_Mysql_Objective C_Utf 8_Nsstring - Fatal编程技术网

Ios NSString:处理基于UTF8的API

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

当我从UITextField获取类型化内容时,哪个字符集是NSString的默认字符集

我开发了一个应用程序,它将这些NSString发送到基于UTF8的REST-API。在后端,有一个基于utf8的MySQL数据库和一个基于utf8的varchar字段。 我的POST请求将字符串数据从iOS应用程序发送到服务器。通过GET请求,我从RESTAPI接收这些字符串

在应用程序中,所有内容都打印得很好。将特殊UTF-8字符(如ÄÖÜ)发送到服务器并接收回后,将正确显示这些字符

但是,当我进入RESTAPI服务器的mysql控制台,并对这些数据执行SELECT命令时,可以看到断字符


根本原因可能是什么?苹果在哪个字符集中使用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是不相关的