我有显示土耳其人物的麻烦,他们在html中以背景中的钻石出现的小问号.
我如何使用iconv来解决这个问题?既然我认为那是最好的选择吧?现在我的页面是utf-8编码的.
我需要支持像这样的人物
ıñş
以及能够将它们插入我的数据库.
谢谢
这是我的阵列:
$array = array(
'name' => $burcname . ' Günlük yorumum',
'link' => 'http://apps.facebook.com/gunlukburcpaylas/sonuc.php?burc='. $burc,
'description' => $burcname . ' Günlük yorumu. Sizde her gün profilinizde günlük burç yorumunuz için uygulamaya kat?l?n..',
'message' => $aciklama,
'picture' => $picture
);
Run Code Online (Sandbox Code Playgroud)
iconv为: $example = iconv('UTF-8','ISO-8859-9',$array);
但这是阵列.并且不工作.我能做什么?
这是我的代码:
#include <stdio.h>
#include <string.h>
#include <iconv.h>
int main()
{
char input[BUFSIZ];
char output[BUFSIZ];
size_t insize = BUFSIZ;
size_t outsize = BUFSIZ;
char **inp = (char **)input;
char **outp = (char **)output;
iconv_t cd = iconv_open("gb2312", "utf-8");
memset(input, '\0', sizeof(input));
memset(output, '\0', sizeof(output));
// freopen("input", "r", stdin);
scanf("%s", input);
insize = strlen(input);
iconv(cd, inp, &insize, outp, &outsize);
printf("%s\n", output);
iconv_close(cd);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到了这条消息:
a.out: **gconv.c:75:__ gconv:断言** `outbuf!=((void*)0)&&*outbuf!=((void*)0)'失败. *已放弃*
我找不到任何问题,我感到无助〜我不擅长英语
print iconv('UTF-8', 'us-ascii//TRANSLIT', '?? ????? ??????, ??? ??? ?!');
我不明白它为什么抛出这个通知.该字符串是有效的UTF8.
它应该将所有字符转换为它们的ASCII等价物,对吧?
例如?应该I,?应该是n等等......
我尝试安装iconv模块,但始终保持:
^Cyippeeyippee@mini: server$ npm install iconv
npm http GET https://registry.npmjs.org/iconv
npm http 304 https://registry.npmjs.org/iconv
> iconv@1.2.3 install /Users/yippeeyippee/Desktop/nodejs/tinman/server/node_modules/iconv
> node-gyp rebuild
gyp http GET http://nodejs.org/dist/v0.8.7/node-v0.8.7.tar.gz
gyp http 200 http://nodejs.org/dist/v0.8.7/node-v0.8.7.tar.gz
Run Code Online (Sandbox Code Playgroud)
我不知道发生了什么,成功还是失败,我怎么能解决这个问题呢?
更新:
等了很久之后:,我得到了这样的失败信息:
xcode-select: Error: No Xcode is selected. Use xcode-select -switch /Applications/Xcode.app to select /Applications/Xcode.app, or see the xcode-select manpage (man xcode-select) for further information.
Traceback (most recent call last):
File "/Users/yippeeyippee/.node-gyp/0.8.7/tools/gyp/gyp", line 18, in <module>
sys.exit(gyp.main(sys.argv[1:]))
File "/Users/yippeeyippee/.node-gyp/0.8.7/tools/gyp/pylib/gyp/__init__.py", line 480, in main
generator.GenerateOutput(flat_list, targets, data, params)
File …Run Code Online (Sandbox Code Playgroud) 我正在尝试处理一个包含城市名称列表的文件.我的目标是输出音译为标准ASCII的城市名称列表.出于某种原因,我只是遇到了问题.我一直在使用Perl中的iConv和Text :: Unidecode库,两者都让我失望.
以下是我称之为cities.txt的文件中城市名称的示例列表:
Måløv
Magtenbølle
Zvonarëvka
Denver
Zvëzdka
New York
Run Code Online (Sandbox Code Playgroud)
通过此操作iconv返回以下内容:
iconv -fUTF-8 -tASCII//TRANSLIT//IGNORE cities.txt
Mal?v
Magtenb?lle
Zvonarevka
Denver
Zvezdka
New York
Run Code Online (Sandbox Code Playgroud)
这在一些非ascii字符上表现很好,但是失败了,特别是在ø字符上.我的列表有几千个条目 - 虽然我实际上没有在大于一个小样本集上研究结果,但我确信还有其他失败.
我的perl尝试看起来像这样:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Text::Unidecode;
while (<>) {
print unidecode $_;
}
Run Code Online (Sandbox Code Playgroud)
那里的输出看起来像这样:
MAY=lA,v
MagtenbA,lle
ZvonarA<<vka
Denver
ZvA<<zdka
New York
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我使用直接语句,Perl会工作.例如
...
print unidecode("Måløv");
Run Code Online (Sandbox Code Playgroud)
将按照我的预期输出"Malov".
我究竟做错了什么?
我有一个Big5编码文件,Mac TextEdit无法打开.我想知道如何将整个文件转换为utf8编码,因为utf8更加通用和普遍.
我已尝试在终端中使用iconv,但它不起作用.我也找不到任何有关此错误的信息.
$ iconv -f BIG5 -t UTF8 in.txt > out.txt
iconv: in.txt:5:0: cannot convert
Run Code Online (Sandbox Code Playgroud)
还有其他转换方式吗?
我在将字符串从 utf8 转换为 gb2312 时遇到问题。我的转换功能如下
void convert(const char *from_charset,const char *to_charset, char *inptr, char *outptr)
{
size_t inleft = strlen(inptr);
size_t outleft = inleft;
iconv_t cd; /* conversion descriptor */
if ((cd = iconv_open(to_charset, from_charset)) == (iconv_t)(-1))
{
fprintf(stderr, "Cannot open converter from %s to %s\n", from_charset, to_charset);
exit(8);
}
/* return code of iconv() */
int rc = iconv(cd, &inptr, &inleft, &outptr, &outleft);
if (rc == -1)
{
fprintf(stderr, "Error in converting characters\n");
if(errno == E2BIG)
printf("errno == E2BIG\n"); …Run Code Online (Sandbox Code Playgroud) php可以将所有charset编码的字符串转换为utf8吗?
无效的解决方案:
utf8_encode($string) - 但它只能将ISO-8859-1字符串编码为UTF-8?iconv($incharset, $outcharset,$text) - 但怎么能找到字符串当前编码?(只能是html dom文件的字符串部分,而不仅仅是字符串)谢谢
我有一个应用程序,用于从Webmail读取电子邮件并将数据保存在数据库中.我正在使用PHP的imap库来完成大部分工作.
问题是大多数电子邮件都有多个字符集(主要是ISO-8859-1和UTF-8),因此我必须从电子邮件中读取字符集,然后使用iconv函数将其解码为ISO-8859-1.
它适用于大多数字符集,但是当我读取Windows-1252字符集并尝试解码时,iconv函数没有返回任何内容.
如果我尝试将iconv函数更改为mb_convert_string,则它不会正确转换所有字符.
这是我的代码:
if( $part->parameters[$i]->attribute == 'charset' )
$charset = $part->parameters[$i]->value;
if (strtolower($charset) != 'iso-8859-1')
$this->emailMessageTxt = iconv($charset, 'iso-8859-1', $this->emailMessageTxt);
Run Code Online (Sandbox Code Playgroud)
那里有错误吗?