- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想将其他编码的数据转换为 UTF-8。我遇到了以下问题:
正在释放的指针未在 iconv() 中分配
。为什么 iconv 会玩弄我的内存?void utf8(char **dst, char **src, const char *enc)
{
iconv_t cd;
size_t len_src,
len_dst;
len_src = strlen(*src);
len_dst = len_src * 8; // is that enough for ASCII to UTF8?
cd = iconv_open("UTF-8", enc);
*dst = (char *)calloc(len_dst+1, 1);
iconv(cd, src, &len_src, dst, &len_dst);
iconv_close(cd);
}
int main(int argc, char **argv)
{
char *src = "hello world";
char *dst;
utf8(&dst, &src, "ASCII");
printf("%s\n", dst);
free(dst);
return 0;
}
最佳答案
引自 iconv()
description at POSIX.1-2008
size_t iconv(iconv_t cd, char **restrict inbuf,
size_t *restrict inbytesleft, char **restrict outbuf,
size_t *restrict outbytesleft);
The variable pointed to by outbuf shall be updated to point to the byte following the last byte of converted output data.
您需要在 utf8()
函数中保存和恢复 *dst
(可能还有 *src
)。
关于c - 如何使用iconv 进行utf8 转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9608395/
我正在尝试在 MAMP 上配置 PHP 5.5,遵循这篇文章: Having problems while try to install OAUTH with PECL in MAMP on mac
我试图在this tutorial的帮助下使用Cygwin安装SRILM,但出现此错误: make[2]: Leaving directory '/srilm/zlib/src' make[1]: L
我在处理 Windows 机器上生成的表格数据的文本文件时遇到问题。我在 Ruby 1.8 工作。在处理文件中的第二行时,以下给出错误(“\000”(Iconv::InvalidCharacter))
iconv 与//TRANSLIT 一起使用时,可以将 ö (odieresis) 等特殊字符转换为 o 等 ascii 字符。某处是否有一个字符表列出了这些转换是如何工作的?我已经在 source
我有一个在Unix下描述为的文件: $file xxx.csv xxx.csv: UTF-8 Unicode text, with very long lines 用less/vi查看它会导致某些特殊
这个问题在这里已经有了答案: Simple UTF8->UTF16 string conversion with iconv (2 个答案) 关闭 8 年前。 在我的 C++ 代码中,我需要使用 i
我下载了iconv昨天,并使用以下方法安装它: $ ./configure --prefix=/usr/local $ make $ make install 当我尝试从 shell 运行 iconv
在 Linux 中我创建了一个纯文本文件。使用“file -i”我看到文件编码是“us-ascii”。尝试以下命令后,它仍然显示输出文件编码为“us-ascii”。您能告诉我如何更改编码吗?或者有什么
当我使用 ASP Classic 脚本生成 XML 文件并在 PHP 页面中导入 XML 文件时,导入过程工作正常。 但是,当我通过 PHP 脚本(而不是 ASP Classic)生成相同的 XML
当您有一个不同于 UTF-8 的字符集,并且需要将其转换为 JSON 格式以将其迁移到数据库时,可以在 PHP 中使用两种方法,调用 utf8_encode() 和 iconv()。我想知道哪个性能更
我目前正在使用 iconv 来转换具有不同编码的文档。 iconv() 函数的原型(prototype)如下: size_t iconv ( iconv_t cd, const char* *
我尝试制作使用 iconv 将 s-jis 字符串转换为 utf-8 字符串的方法。我在下面写了一段代码, #include #include #include using namespace
我没有发现任何违法行为 - 对可能存在的问题有何建议? if (strtolower($matches[1]) != 'utf-8') { var_dump($matches[
在php中iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库;但有时候iconv对于部分数据转码会无缘无故的少一些。比如在转换字符"—"到gb2312
1、下载libiconv函数库http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz; 2、解压缩tar -zxvf libi
考虑以下示例文本行: α Arietis, called Hamal, is the brightest star in Aries. Its traditional name is derived
我正在尝试将输入文件的一些字符串从 UTF8 转换为 ASCII。对于我给它的大多数字符串,使用 iconv() 转换效果非常好。但是在其中一些上,它返回 NA。虽然手动修复文件中的问题似乎是最简单的
在 U2/Universe/Pick 中,有一个函数 ICONV("11/11/15","D") 将外部日期转换为内部日期,但这适用于美国或日期格式为 mm/仅日/年。如何将此函数用于英国日期格式 (
是否所有流行的iconv实现都支持从UTF-16BE转换(即具有大端字节顺序的UTF-16)? GNU iconv支持这种编码,但是其他常用的实现又如何呢?具体来说,mingw和* BSD支持什么?
我需要在不占用服务器内存的情况下转换文本文件的字符编码,而输入文件是用户配置的并且其大小不受限制。 使用 exec() 包装 unix 的 iconv 命令(我宁愿避免,尽管我已经在应用程序中使用它进
我是一名优秀的程序员,十分优秀!