- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用波兰国家字符进行 Base64 编码。例如:
"zażółć gęślą jaźń"
应该是:
emEmIzM4MDvzJiMzMjI7JiMyNjM7IGcmIzI4MTsmIzM0NztsJiMyNjE7IGphJiMzNzg7JiMzMjQ7
但实现此解决方案后:
-(NSString *)Base64Encode:(NSData *)data{
//Point to start of the data and set buffer sizes
int inLength = [data length];
int outLength = ((((inLength * 4)/3)/4)*4) + (((inLength * 4)/3)%4 ? 4 : 0);
const char *inputBuffer = [data bytes];
char *outputBuffer = malloc(outLength);
outputBuffer[outLength] = 0;
//64 digit code
static char Encode[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
//start the count
int cycle = 0;
int inpos = 0;
int outpos = 0;
char temp;
//Pad the last to bytes, the outbuffer must always be a multiple of 4
outputBuffer[outLength-1] = '=';
outputBuffer[outLength-2] = '=';
while (inpos < inLength){
switch (cycle) {
case 0:
outputBuffer[outpos++] = Encode[(inputBuffer[inpos]&0xFC)>>2];
cycle = 1;
break;
case 1:
temp = (inputBuffer[inpos++]&0x03)<<4;
outputBuffer[outpos] = Encode[temp];
cycle = 2;
break;
case 2:
outputBuffer[outpos++] = Encode[temp|(inputBuffer[inpos]&0xF0)>> 4];
temp = (inputBuffer[inpos++]&0x0F)<<2;
outputBuffer[outpos] = Encode[temp];
cycle = 3;
break;
case 3:
outputBuffer[outpos++] = Encode[temp|(inputBuffer[inpos]&0xC0)>>6];
cycle = 4;
break;
case 4:
outputBuffer[outpos++] = Encode[inputBuffer[inpos++]&0x3f];
cycle = 0;
break;
default:
cycle = 0;
break;
}
}
NSString *pictemp = [NSString stringWithUTF8String:outputBuffer];
free(outputBuffer);
return pictemp;
}
当然我得到的东西略有不同:
emHFvMOzxYLEhyBnxJnFm2zEhSBqYcW6xYQ
女巫回到我身边(来自在线 decoder ):
zażółć gęślą jaźń
我这样调用它:
NSString* str= _@"zażółć gęślą jaźń";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
NSString * encodeString = [[[NSString alloc] init] autorelease];
encodeString = [self Base64Encode:data];
最佳答案
在线解码器位于 ISO-8859-1 页面上,而不是 UTF-8 页面上。如果你强制使用 UTF-8,它就可以工作。
此外,编码版本的差异可能是因为组合字符与分解字符(不确定)。
关于objective-c - Base64 和 utf8/National 字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10798084/
我正在为我的公司购买新的数据采集系统以用于各种项目。起初,它的主要目的是监控多达 20 个热电偶并控制复合 Material 炉的温度。但是,我还计划用它来监控加速度计、应变仪,并用作信号发生器。 我
我正在使用 NI 的 Labwindows CVI,并且正在尝试集成源代码控制。据说它适用于任何适合 MS API (MSSCC/SCC) 的东西,但我在实践中没有发现这种情况。如果有一个 SVN 服
国家 build 者的新手,希望编辑一个实时的国家 build 者网站。我想制作可用于测试的站点的副本/沙盒。 任何有关如何复制 nationbuilder 站点或 nationbuilder 测试/
我正在尝试学习Hadoop。我正在尝试将National Climatic Data Center数据获取到新安装的Hadoop Master中。获取整个数据的最简单方法是什么 编辑:由于我获得了否决
我试图通过使用Sqoop将Hive表导出到SQL Server。我在 hive 表中有一个字符串字段,SQL Server中此字段的格式为varchar(255)。在运行以下Sqoop导出时: sqo
我使用 mysql 命令行实用程序在具有足够列长度的表上运行包含 INSERT 语句的 SQL 脚本,但出现错误: 第 115 行的错误 1406 (22001):第 1 行“名称”列的数据太长 请注
我想使用波兰国家字符进行 Base64 编码。例如: "zażółć gęślą jaźń" 应该是: emEmIzM4MDvzJiMzMjI7JiMyNjM7IGcmIzI4MTsmIzM0Nzts
我去看看这里有没有程序octave的数据采集工具箱,没找到http://octave.sourceforge.net/packages.php 我想做的是使用我的 National Instrumen
我希望在 R 中重新创建完整的 Ordnance Survey National Grid(如此处所示 https://upload.wikimedia.org/wikipedia/commons/f
我有 Oracle 11 数据库,我使用 JDBC 和 ODBC 连接到该数据库。 JDBC 运行良好,但在 ODBC 中,SELECT 结果中的所有波兰字母都更改为等效的拉丁字母,例如 ± -> a
我是一个非常新手的程序员,只有脚本编写经验(主要是 VBA 和 Python)。我的一位教授要求我使用 C# 编写一个应用程序来操作激光三角测量扫描仪。我知道一旦获得原始电压数据,我就可以做其他所有事
我使用的是 xcode 6.4、Swift 和 iOS8。我的目标是使用谷歌地图(和地点?)sdk 显示 map 。当我在谷歌地图上搜索“国家公园”时,这张 map 应该包含谷歌提供的所有结果。 我已
我仅在 jsp 和 mysql 中创建了创建、插入、更新、删除、退出程序。我得到了插入、删除、退出和创建的解决方案,但是,只有更新部分我得到了错误。在我的数据库中,名称是员工,表名是员工,字段的顺序如
我正在尝试创建一些目录,这些目录具有国家符号,如“äöü”等。不幸的是,每当尝试这样做时,我都会收到此异常: java.nio.file.InvalidPathException: Malformed
我是一名优秀的程序员,十分优秀!