如何在PHP中将ASCII转换为ISO-8859-1?

我目前正试图弄清楚如何将 ASCII </ strong>编码的字符串转换为< strong> ISO-8859-1 </ strong>编码用于 utf8_encode()</ code>以显示特殊字符,例如“ñ</ strong>”但我似乎无法制作 工作。 需要帮助。</ p>

我已经尝试过这个 iconv(mb_detect_encoding($ text,mb_detect_order(),true),“ISO-8859-1”,$ text) ; </ code>和此 mb_convert_encoding($ text,“ISO-8859-1”); </ code>以及此 mb_convert_encoding($ text,“ASCII”,“ISO-8859-1” ); </ code>但它不起作用,字符串仍然是ASCII编码。</ p>

我通过使用提供的字符串创建查找表,为此创建了一个临时解决方案。 读取字符串的每个字符。 但我想使用php内置函数,这可能吗?</ p>

这是我的代码:</ p>

 &lt;?php  

function convertString($ text){

$ text = iconv(mb_detect_encoding($ text,mb_detect_order(),true),“ISO-8859-1”,$ text);
echo mb_detect_encoding($ text )。'&lt; br /&gt;'; //检查字符串的编码,显示ASCII
返回utf8_encode($ text);

}

echo convertString('\ xc3 \ xb1');

?&gt;
</ code> </ pre>
</ div>

展开原文

原文

I'm currently trying to figure out how to convert an ASCII encoded string to ISO-8859-1 encoding to be used for utf8_encode() to display special characters like "ñ" but I can't seem to make it work. In need of help.

I've already tried this iconv(mb_detect_encoding($text, mb_detect_order(), true), "ISO-8859-1", $text); and this mb_convert_encoding($text, "ISO-8859-1"); and also this mb_convert_encoding($text, "ASCII", "ISO-8859-1"); but it doesn't work, the string is still ASCII encoded.

I've created a temporary solution for this by creating a lookup table using the string provided by reading each character of the string. But I want to use the php built-in functions, is this possible?

Here is my code:

<?php

function convertString($text) {

    $text = iconv(mb_detect_encoding($text, mb_detect_order(), true), "ISO-8859-1", $text);
    echo mb_detect_encoding($text) .'<br/>'; // to check what encoding the string is in, displays ASCII
    return utf8_encode($text);

}

echo convertString('\xc3\xb1');

?>

drci47425
drci47425 如果丢失数据,您只需要检测(猜测)字符编码:具体而言,哪个字符编码产生了字节。在猜测时,总会有很多可能的答案。mb_detect_encoding只提供一个,但它允许您给出一个优先级列表,您可以选择一个答案。
11 个月之前 回复
dqrfdl5708
dqrfdl5708 你是对的,但我现在不能在这样的位置做出改变。谢谢你的方式!
11 个月之前 回复
dongzaizai2015
dongzaizai2015 “但是如果字符串来自数据库怎么办?”那么无论你有一个实际的ñ,还是一系列应该用某种形式的元编码来表示它的字符,它仍然是一个主要的区别。|当您输出内容时,您是否计划一直在进行这些转换?我认为将数据库转换为包含正确的UTF-8可能更有意义。
11 个月之前 回复
dongta5621
dongta5621 嗨@misorude,我知道它需要是一个双引号字符串才能成为ñ,但如果该字符串来自数据库怎么办?这就是我试图为UTF-8代码制作字符串转换器的原因。
11 个月之前 回复
douping3427
douping3427 convertString('\xc3\xb1')-你知道你传递给函数的值不代表ñ,对吗?如果没有,你需要首先阅读相同的基础知识,php.net/manual/en/language.types.string.php
11 个月之前 回复
duanniu4106
duanniu4106 HI@CD001,我已经尝试过ASCII到UTF-8,但转换不起作用。该字符串仍然是ASCII
11 个月之前 回复
dongxiong4571
dongxiong4571 为什么不从ASCII转到UTF-8?无论如何,ASCII中只有256个字符,其中大部分与UTF-8字符集中的等效字符相同......
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问