标签: iconv

将\ u转义的Unicode字符串转换为ASCII

阅读所有关于后iconvEncoding,我仍然感到困惑.

我正在抓取网页的来源我有一个如下所示的字符串:( 'pretty\u003D\u003Ebig'在R控制台中显示'pretty\\\u003D\\\u003Ebig').我想将其转换为ASCII字符串,应该是'pretty=>big'.

更简单,如果我设置

x <- 'pretty\\u003D\\u003Ebig'
Run Code Online (Sandbox Code Playgroud)

如何进行转换x以获得收益pretty=>big

有什么建议?

unicode text-processing r unicode-string iconv

11
推荐指数
2
解决办法
1万
查看次数

iconv或mbstring?

我应该使用哪个多字节处理库:iconvmbstring

经过一些谷歌搜索我没有找到足够的论据来说服我特别使用一个,我无法得到任何基准(我太懒了创建一个:-p).

毕竟这个选择真的不重要吗?

感谢您的任何建议.

php iconv mbstring

10
推荐指数
1
解决办法
5032
查看次数

bash脚本(RHEL)中的unaccent字符串

在基于Debian的发行版中,有一个名为unaccent的实用程序,可用于删除文本中重音字母的重音.

我正在寻找一个包含Redhat发行版的软件包,但是我找到的唯一一个仅适用于Mandriva的软件包.

我试图使用iconv,但它似乎不支持我的情况.

什么是最好的轻量级方法,可以在bash脚本中轻松使用?iconv是否有任何秘密选项允许这样做?

bash iconv

10
推荐指数
1
解决办法
6573
查看次数

使用iconv将UTF-16BE转换为UTF-8而不使用BOM

我正在尝试使用iconv将UTF-16BE编码文件(字节顺序标记:0xFE 0xFF)转换为UTF-8,如下所示:

iconv -f UTF-16BE -t UTF-8 myfile.txt
Run Code Online (Sandbox Code Playgroud)

但是,结果输出具有UTF-8字节顺序标记(0xEF 0xBB 0xBF),这不是我需要的.有没有办法告诉iconv(或者是否存在等效的编码)将BOM放入UTF-8结果中?

text utf-8 utf-16 iconv

10
推荐指数
1
解决办法
8560
查看次数

将Javascript UTF-8转换为ASCII(如PHP中的Iconv('UTF-8','ASCII // TRANSLIT',$ string))

我想知道如何使用Javascript将UTF-8中的字符"转换"为最接近的ASCII等价物,就像PHP中的Iconv doest一样.

例:

ü变成你
成为o

我宁愿不使用替换,因为a)它需要一组完整的字符,这是很多工作而且b)我很难得到一套完整的字符,而且我永远不会确定如果我错过了一两个.

javascript ascii utf-8 iconv

10
推荐指数
2
解决办法
1万
查看次数

调试iconv_strlen错误 - PHP 5.5

我正在尝试使用Laravel和DomPDF将文档导出为PDF.这适用于我的Mac,但不适用于登台或实时服务器.错误如下:

我不知道这意味着什么,也找不到任何解决方案.

iconv_strlen(): Wrong charset, conversion from8位// IGNORE'到 UCS-4LE' is not allowed

open: /srv/www/html/vendor/patchwork/utf8/class/Patchwork/PHP/Shim/Mbstring.php

        return true;
    }

    static function mb_strlen($s, $encoding = INF)
    {
        INF === $encoding && $encoding = self::$internal_encoding;
        return iconv_strlen($s, $encoding . '//IGNORE');
    }
Run Code Online (Sandbox Code Playgroud)

我尝试将以下内容添加到.htaccess中

AddDefaultCharset UTF-8
Run Code Online (Sandbox Code Playgroud)

我尝试将以下内容添加到视图的顶部,我正在尝试生成pdf:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
Run Code Online (Sandbox Code Playgroud)

如果您需要任何进一步的信息来帮助我进行调试,请在评论中提问.

php iconv dompdf mbstring laravel

10
推荐指数
1
解决办法
5645
查看次数

如何强制PHP使用iconiconv版本的iconv而不是CentOS安装的glibc版本?

我正在开发的代码在Windows XP和Mac OS X上完美运行.在CentOS(以及Fedora和Ubuntu)上进行测试时,它运行不正常.搜索网络让我得出结论,这是导致问题的glibc版本iconv.所以现在我需要Zend Lucene 的libiconv版本iconv才能正常工作.

我已经下载libiconv的,并配置它--prefix=/usr/local,make,然后make install没有任何错误.它似乎已成功安装,因为执行/usr/local/bin/iconv --version说版本是libiconv.虽然简单iconv --version仍然给出了glibc版本.

然后我从源代码重新编译PHP --with-iconv=/usr/local.但是,phpinfo()显示iconv正在使用的是glibc版本.我也已经尝试过使用--with-iconv-dir或使用其他几个编译器/usr/local/bin/php.

当然,我重新编译PHP后重新启动了Web服务器.

我的内容如下/etc/httpd/conf/httpd.conf:

LoadModule /usr/lib/httpd/modules/libphp5.so
Run Code Online (Sandbox Code Playgroud)

libphp5.so实际上是/usr/lib/httpd/modules.

phpinfo()显示PHP 5.3.3.我也yum删除了预装的PHP 5.1.*只是为了确保.但iconv仍在使用glibc版本.

ldd /usr/lib/httpd/modules/libphp5.so

linux-gate.so.1 =>  (0x003b1000)
/usr/local/lib/preloadable_libiconv.so (0x00110000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x001ed000)
librt.so.1 => /lib/librt.so.1 (0x0021f000)
libmysqlclient.so.15 => /usr/lib/mysql/libmysqlclient.so.15 (0x003b2000) …
Run Code Online (Sandbox Code Playgroud)

php linux apache glibc iconv

9
推荐指数
2
解决办法
1万
查看次数

为什么iconv可以转换预组合形式而不是"É"的分解形式(从UTF-8到CP1252)

我使用iconv库来连接从使用UTF-8的现代输入源到使用Latin1的遗留系统,即CP1252(ISO-8859-1的超集).

界面最近未能转换法语字符串"Éducation",其中"É"编码为十六进制45 CC 81.请注意,目标编码的确具有"É"字符,编码为C9.

为什么iconv无法转换为"É"?我检查过MacOS X 10.7.3提供的iconv命令行工具说它无法转换,并且PERL iconv模块也失败了.

令人费解的是,"É"字符(编码为C3 89)的预组合形式转换得很好.

这是iconv的错误还是我错过了什么?

请注意,如果我尝试从UTF-16转换(其中"É"编码为00 C9组合或00 45 03 01分解),我也会遇到同样的问题.

unicode iconv

9
推荐指数
1
解决办法
2218
查看次数

如何做一个重音不敏感的grep?

有没有办法使用grep进行重音不敏感搜索,最好保留--color选项?通过这个我的意思grep --secret-accent-insensitive-option aei是匹配àei,但也äēì和可能æi.

我知道我可以iconv -t ASCII//TRANSLIT用来删除文本中的重音,但我不知道如何使用它来匹配文本被转换(它适用于grep -c或-l)

encoding grep diacritics matching iconv

9
推荐指数
1
解决办法
3292
查看次数

如何在PHP中检测无效的html实体?

我有一堆正在处理的文本/ html文档

其中一些包含编码的html实体,我试图将其转换为原始解码的utf字符.

这很容易使用html_entity_decode,但是,某些实体是无效的,例如

&#x99999;
Run Code Online (Sandbox Code Playgroud)

出于这个原因,我正在使用正则表达式来提取每个单独的实体,然后尝试以某种方式验证它们.

如果一个实体无效,我想把它保留&#x99999;在文档中,但像编码的东西&amp;仍然会变成&.

只是一些示例测试代码我敲了..

<?php
function dump_chars($s)
{
    if (preg_match_all('/&[#A-Za-z0-9]+;/', $s, $matches))
    {
        foreach ($matches[0] as $m)
        {
            $decoded = html_entity_decode($m, ENT_QUOTES, "UTF-8");

            echo "[" . htmlentities($m, ENT_QUOTES, "UTF-8") . "] ";
            echo "Decoded: [" . $decoded . "] ";
            echo "Hex: [" . bin2hex($decoded) . "] "; 
            echo "detect: [" . mb_detect_encoding($decoded) . "]";
            echo "<br>";
        }
    }
}

$payload = "&quot; &amp; &#x349; &#x92; &#x99999;";
echo …
Run Code Online (Sandbox Code Playgroud)

php iconv html-entities

8
推荐指数
1
解决办法
1290
查看次数