标签: iso-8859-1

IE中的HTML实体和字符集

✓在html文档中显示html实体(复选标记:✓),该文档使用iso-8859-1作为字符集.

在Firefox中,它显示为复选标记.在IE中,它显示为方框.切换到UTF-8似乎没有什么区别.

有没有可靠的方法在不使用图像的情况下在IE 6和7中显示这些实体?

internet-explorer entities iso-8859-1 character-encoding html-entities

7
推荐指数
2
解决办法
9850
查看次数

iconv给出了"非法人物"的智能引号 - 如何摆脱它们?

我有一个MySQL表,其中120,000行以UTF-8格式存储.有一个字段,产品名称,包含带有许多重音的文本.在将其转换为友好的URL形式(ASCII)后,我需要使用相同的名称填充第二个字段.

由于PHP不直接处理UTF-8,我使用:

$value = iconv ('UTF-8', 'ISO-8859-1', $value);

将名称转换为ISO-8859-1,然后是一个巨大的strstr语句,用其非重音等效项替换任何重音字符(例如,à变为a).

但是,原始文本名称是使用智能引号输入的,而且每当遇到一个时,iconv会发出窒息 - 我得到:

Unknown error type: [8]

iconv() [function.iconv]: Detected an illegal character in input string

为了在使用iconv之前删除智能引号,我尝试使用三个语句,如:

$value = str_replace('’', "'", $value);

(是UTF-8智能单引号的原始值)

因为文本文件太长,所以这些str_replace会导致脚本每次都超时.

  1. 在运行iconv之前,从UTF-8字符串中删除智能引号(或任何无效字符)的最快方法是什么?

  2. 或者,这个问题是否有更简单的解决方案?将具有多个重音符号(UTF-8)的名称转换为没有重音符号,拼写正确的ASCII格式的最快方法是什么?

mysql utf-8 iso-8859-1 smart-quotes iconv

7
推荐指数
2
解决办法
9693
查看次数

jQuery AJAX调用混乱了字符编码

我有一个输出JSON的servlet.servlet的输出编码是ISO-8859-1.我们的webapp中的页面也设置为ISO-8859-1.我会使用UTF-8,但这不在我的控制之内; 我们必须使用ISO-8859-1.

当我单独点击servlet时,我可以看到已经输出的JSON数据.字符编码是正确的,没有一个字符看起来很奇怪.

但是,当我通过AJAX调用servlet并使用检索到的数据来填充选择框时,我得到了(似乎)所有具有重音符号的字符(例如我带有重音符号或重音符号,音乐符号或抑扬音符号) ).当我在Firebug下的Net选项卡中查看响应时,我可以看到文本看起来很好.但是,当我使用该数据填充选择框时,我会得到带有问号的钻石.

这些字符都是有效的ISO-8859-1字符,所以我不明白为什么它们没有正确显示.

编辑

更多信息.我用GET,jQuery.ajax我已经开始scriptCharsetISO-8859-1.在服务器端,我已经明确地将编码设置为ISO-8859-1request.setCharacterEncoding("ISO-8859-1");

编辑

代码示例:

这就是我目前所拥有的.我scriptCharset: "ISO-8859-1"没有添加任何效果.

        jQuery.ajax({
            url: "/countryAndProvinceCodeServlet",
            data: data,
            dataType: "json",
            type: "GET",
            success: function(data) {
               ...
            },
        });
Run Code Online (Sandbox Code Playgroud)

我的servlet使用org.json.JSONObject并通过执行简单输出字符串response.getWriter().print(jsonObject.toString());

UPDATE

约每JSON,以及如何它应该是UTF-8的评论,我想看看我是否能获取数据为文本(所以设置dataTypetextjQuery.ajax),然后评估它作为自己的JSON(在Javascript).这似乎也不起作用!当我这样做时console.log,我仍然可以获得时髦的钻石.但是,当我在Firebug的Net选项卡下查看它时,一切都显示正常:

网络标签:

{"error":false,
 "provinces":{"DZ-01":"Adrar",
              "DZ-16":"Alger",
              "DZ-23":"Annaba",
              "DZ-44":"Aïn Defla",
              "DZ-46":"Aïn Témouchent",
              "DZ-05":"Batna",
              "DZ-07":"Biskra",
              "DZ-09":"Blida",
              "DZ-34":"Bordj Bou Arréridj",
              "DZ-10":"Bouira",
              "DZ-35":"Boumerdès",
              "DZ-08":"Béchar",
              "DZ-06":"Béjaïa",
              "DZ-02":"Chlef",
              "DZ-25":"Constantine",
              "DZ-17":"Djelfa",
              "DZ-32":"El Bayadh",
              "DZ-39":"El Oued",
              "DZ-36":"El Tarf", …
Run Code Online (Sandbox Code Playgroud)

java ajax jquery json iso-8859-1

7
推荐指数
1
解决办法
3万
查看次数

HTML - 来自数据库的£磅符号显示为?即使是charset = UTF-8

我们有一堆手动输入的数据库数据.它们包含许多英镑(£)符号.原始用户从某处复制/粘贴英镑符号,不知道在哪里(我不确定它是否重要......).

无论如何,当在PHP页面上打印出数据时,英镑符号显示为替换字符.页面中有<meta charset="utf-8"/>.在浏览器中,如果将编码更改为ISO-8859-1,则正确显示井号.

经过一番挖掘,我得出结论,原始数据录入人员将ISO-8859-1编码的英镑符号复制/粘贴到数据库中.因此,除非使用页面呈现ISO-8859-1,否则它将无法正确显示.

以下是Chrome的标题信息:

Request URL:http://www.mysite.com/test.php
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:X-Mapping-goahf....
Host:www.mysite.com
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2
Response Headersview source
Connection:Keep-Alive
Content-Type:text/html; charset=UTF-8
Date:Wed, 07 Dec 2011 22:38:14 GMT
Server:Apache/2.2
Transfer-Encoding:chunked
Run Code Online (Sandbox Code Playgroud)

MySQL表也说它使用的latin1_swedish_ci是默认值.

那么我该如何解决这个问题呢?我不太了解字符编码的工作方式以及将字符从一个地方复制/粘贴到另一个地方时会发生什么.

我试着去这个页面:

http://www.fileformat.info/info/unicode/char/a3/browsertest.htm

并复制英镑符号并将其粘贴到数据库中,认为可以修复它,但它似乎没有...我如何使数据库中的英镑符号成为UTF-8磅符号而不是ISO- 8859-1?

html mysql utf-8 iso-8859-1 character-encoding

7
推荐指数
1
解决办法
7737
查看次数

使用Python Django BeautifulSoup和Curl正确地刮擦和显示日文字符

我正在尝试使用python,curl和BeautifulSoup在日语中抓一页.然后我将文本保存到使用utf-8编码的MySQL数据库,并使用Django显示结果数据.

这是一个示例URL:

https://www.cisco.apply2jobs.com/ProfExt/index.cfm?fuseaction=mExternal.showJob&RID=930026&CurrentPage=180

我有一个函数用于将HTML提取为字符串:

def get_html(url):
    c = Curl()
    storage = StringIO()
    c.setopt(c.URL, str(url))
    cookie_file = 'cookie.txt'
    c.setopt(c.COOKIEFILE, cookie_file)
    c.setopt(c.COOKIEJAR, cookie_file)
    c.setopt(c.WRITEFUNCTION, storage.write)
    c.perform()
    c.close()
    return storage.getvalue()
Run Code Online (Sandbox Code Playgroud)

然后我把它传递给BeautifulSoup:

html = get_html(str(scheduled_import.url))
soup = BeautifulSoup(html)
Run Code Online (Sandbox Code Playgroud)

然后将其解析并将其保存到数据库中.然后我使用Django将数据输出到json.这是我正在使用的视图:

def get_jobs(request):
    jobs = Job.objects.all().only(*fields)
    joblist = []
    for job in jobs:
        job_dict = {}
        for field in fields:
            job_dict[field] = getattr(job, field)
        joblist.append(job_dict)
    return HttpResponse(dumps(joblist), mimetype='application/javascript')
Run Code Online (Sandbox Code Playgroud)

结果页面显示字节码,例如:

xe3\x82\xb7\xe3\x83\xa3\xe3\x83\xaa\xe3\x82\xb9\xe3\x83\x88

\ xe8\x81\xb7\xe5\x8b\x99\xe5\x86\x85\xe5\xae
\ xb9\xe3\x82\xb7\xe3\x82\xb9\xe3\x82\xb3\xe3\x82\xb7\xe3\x82\xb9\xe3\x83\x86\xe3\x83\xa0\xe3\x82\XBA\XE3\X81\XAE\XE3\X82\XB3\XE3\X83版权所有\ xA9\XE3\X83\x9c\XE3\X83\XAC\XE3\X83\XBC\XE3\X82\XB7\XE3\X83\XA7\XE3\X83\XB3\XE4\XBA\x8b\XE6\xa5\XAD\xe9\X83\xa8\XE3\X81\XA7\XE3\X81\XAF\XE3\X80\X81\XE4\XBA\XBA\XE3\X82\X92\XE4\XB8\XAD\xe5\XBF\X83\XE3\X81\xa8\XE3\X81\X97\XE3\X81\x9f\XE3\X82\XB3\XE3\X83\x9f\XE3\X83\xa5\XE3\X83\x8b\XE3\X82\XB1\XE3\X83\XBC\XE3\X82\XB7\XE3\X83\XA7\XE3\X83\XB3\XE3\X81\XAB\XE3\X82\X88\XE3\X82\x8a\XE3 \

而不是日本人.

我一直在研究并将我的数据库转换为utf-8,尝试将文本从iso-8859-1解码并编码为utf-8.

基本上我不知道我在做什么,并且会感谢我能得到的任何帮助或建议,所以我可以避免花一天时间试图解决这个问题.

python django beautifulsoup utf-8 iso-8859-1

7
推荐指数
1
解决办法
1452
查看次数

如果我使用ISO-8859-1,如果我使用UTF-8和SQL数据上的奇怪字符,HTML上的问号字符

我正在制作一个像拉丁语á, ã, ç和其他人一样的页面.该站点从SQL数据库中提取数据.我正在使用这个<head>:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>
使用此标题,HTML重音字符很好,但SQL数据显示为çã而不是ão,如果我将charsetISO-8859-1 更改为UTF-8,则所有HTML重音字符由 (问号)显示,SQL数据显示重音很好.
除了转义所有HTML字符或SQL字符之外,有没有办法解决它?

PS:我已经尝试过了,mysql_set_charset('utf8');SET NAMES utf8没有对我有用.

html mysql utf-8 iso-8859-1 character-encoding

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

将字符串从UTF-8转换为ISO-8859-1

我正在尝试将UTF-8 string转换为ISO-8859-1 char*以用于遗留代码.我看到这样做的唯一方法是iconv.

我肯定更喜欢完全string基于C++的解决方案,然后只需调用.c_str()生成的字符串.

我该怎么做呢?请尽可能使用代码示例.iconv如果它是你知道的唯一解决方案,我很好用.

c++ utf-8 iso-8859-1 iconv

7
推荐指数
2
解决办法
7241
查看次数

印地语文本在android中无法正确呈现

我正在开发一个应用程序,我必须显示从服务器响应中收到的文本textview.文字可能在English or Hindi.在印地文的情况下,一些字母被问号代替(?).这是什么问题?这就是我设置文本的方式.Android version 6.字体类型 - Proxima Nova Alt Regular

 for (int i = 0; i < 3; i++) {
 viewHolder.lines[i].setText(poem.lines[i].lineText);
 }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

unicode android utf-8 iso-8859-1 character-encoding

7
推荐指数
1
解决办法
1119
查看次数

谁进行复制/粘贴转换?

假设我在网页中有一个带有 charset 的输入字段UTF8;假设我打开一个用 as 字符集编码的文本文件ISO-8859-1

\n\n

现在,我将带有特殊字符(例如,\xc3\xb4)的字符串从文件复制并粘贴到输入字段:我看到特殊字符正确显示到输入字段中。

\n\n

ISO-8859-1谁进行从到 的转换UTF8?浏览器?

\n

html utf-8 iso-8859-1 character-encoding

6
推荐指数
1
解决办法
2349
查看次数

可以编码::猜猜从iso-8859-1告诉utf-8?

我有一个字符串$ data,用utf-8编码.我假设我不知道这个字符串是utf-8还是iso-8859-1.我想使用Perl Encode :: Guess模块​​来查看它是否是其中之一.我无法弄清楚这个模块是如何工作的.

我尝试了以下四种方法(来自http://perldoc.perl.org/Encode/Guess.html):

use Encode::Guess qw/utf8 latin1/;

my $decoder = guess_encoding($data);

print "$decoder\n";
Run Code Online (Sandbox Code Playgroud)

结果: iso-8859-1或utf8

use Encode::Guess qw/utf8 latin1/;

my $enc = guess_encoding($data, qw/utf8 latin1/);
ref($enc) or die "Can't guess: $enc";
my $utf8 = $enc->decode($data); 

print "$utf8\n";
Run Code Online (Sandbox Code Playgroud)

结果:无法猜测:iso-8859-1或utf8 at encodage-windows.pl第25行,第18110行.

use Encode::Guess qw/utf8 latin1/;

my $decoder = Encode::Guess->guess($data);
die $decoder unless ref($decoder);
my $utf8 = $decoder->decode($data);

print "$utf8\n";
Run Code Online (Sandbox Code Playgroud)

结果: iso-8859-1或utf8 at encodage-windows.pl第30行,第18110行.

use Encode::Guess qw/utf8 latin1/;

my $utf8 = Encode::decode("Guess", $data);

print "$utf8\n";
Run Code Online (Sandbox Code Playgroud)

结果: …

perl encoding utf-8 iso-8859-1

6
推荐指数
1
解决办法
1392
查看次数