我写了html页面,显示混合的希伯来语/英语内容.它与charset"windows - 1255"工作正常
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html dir="rtl" lang="he">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
Run Code Online (Sandbox Code Playgroud)
,但我认为如果他们的机器不支持希伯来语,人们会遇到麻烦.我将字符集改为utf-8并得到了
HTML:
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
Run Code Online (Sandbox Code Playgroud)
视图:
"??? ??? ??????, ??? ????? ?????, ?? ?????? ???? ??? ???? ?? ??????"
Read zohar ??? ????
....
Run Code Online (Sandbox Code Playgroud)
是不是utf-8假设支持更多的字符然后Windows 1255?
我已经使用 Google Apps 脚本编写了一个脚本,用于将网页中的文本提取到 Google 表格中。我只需要这个脚本来处理特定的网页,所以它不需要是通用的。该脚本几乎完全按照我的要求工作,只是我遇到了字符编码问题。我正在提取希伯来语和英语文本。HTML 中的元标记具有 charset=Windows-1255。英语提取完美,但希伯来语显示为包含问号的黑色菱形。
我发现这个问题说将数据传递到 blob 然后使用 getDataAsString 方法转换为另一种编码。我尝试转换为不同的编码并得到不同的结果。UTF-8 显示带问号的黑色菱形,UTF-16 显示韩语,ISO 8859-8 返回一个错误并说它不是一个有效的参数,原始的 Windows-1255 显示一个希伯来字符,但显示一堆其他乱码。
但是,我可以手动将希伯来语文本复制并粘贴到 Google 表格中,并且显示正确。
我什至测试过直接从 Google Apps 脚本代码传递希伯来语,如下所示:
function passHebrew() {
return "??????????";
}
Run Code Online (Sandbox Code Playgroud)
这会在 Google 表格上正确显示希伯来语文本。

我的代码如下:
function passHebrew() {
return "??????????";
}
Run Code Online (Sandbox Code Playgroud)
我忽略、误解或做错了什么?我对编码的工作原理不太了解,所以我不明白为什么将其转换为 UTF-8 不起作用。
extract character-encoding hebrew windows-1255 google-apps-script
我通过curl获取网页的内容,字符集设置为Windows-1256。
现在我想将此数据插入MySQL数据库,字符集为utf8_general_ci。
有什么办法可以做到这一点吗?
例如 :
\n\nSet objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")\n...\n\'writes the file as unicode (can\'t use Ascii)\nSet Fileout = FSO.CreateTextFile("c:\\temp\\myfile.xml", true, true) \n\n....\nFileout.WriteLine(objWinHttp.responsetext)\nRun Code Online (Sandbox Code Playgroud)\n\n在记事本/记事本++中查看文件时,我将希伯来语视为乱码/乱码。\n例如:\n \xc3\xa4\xc3\xac\xc3\xab\xc3\xa5\xc3\xba - \xc3\xa4\xc3 \xb8\xc3\xa1 \xc3\xa0\xc3\xa1\xc3\xb8\xc3\xa4\xc3\xad \xc3\xa9\xc3\xa5\xc3\xb1\xc3\xb3 - \xc3\xae\xc3\ xa5\xc3\xb8\xc3\xb9\xc3\xba
我需要一个 vbscript 函数来正确返回希伯来语,该函数应类似于以下http://www.pixiesoft.com/flip/选择第二个单选按钮并按转换按钮,您将正确看到希伯来语。
让我说我有这个代码:
use strict;
use LWP qw ( get );
my $content = get ( "http://www.msn.co.il" );
print STDERR $content;
Run Code Online (Sandbox Code Playgroud)
错误日志显示类似"\ xd7\x9c\xd7\x94\xd7\x93\xd7\xa4\xd7\xa1\xd7\x94",我猜它是utf-16?
该网站的编码是与
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1255">
Run Code Online (Sandbox Code Playgroud)
那么为什么这些角色出现而不是windows-1255字符呢?
而另一个奇怪的事情是我有两台服务器:
第一台服务器返回CP1255字符,我可以简单地将其转换为utf8,当前服务器给我这些字符,我不能用它做任何事情......
apache/perl/module中是否有任何配置文件搞乱了编码?强迫某事......?
我的网站在第二台服务器上的结果是perl文件和标题都是utf8,所以当我写的文字不是英文字符时,上面例子中的内容显示正常(即使它是奇怪的字符) )但我自己的静态文本看起来像"×ס××××××:"
我测试的另一件事是......
通过perl:
my $content = `curl "http://www.anglo-saxon.co.il"`;
Run Code Online (Sandbox Code Playgroud)
我得到utf8编码.
通过Bash:
curl "http://www.anglo-saxon.co.il"
Run Code Online (Sandbox Code Playgroud)
在这里我得到CP1255(Windows-1255)编码...
此外,当我在bash中运行脚本时 - 它提供了CP1255,并且当它通过网络运行时 - 然后它再次是utf8 ...
通过改变utf8中的内容来修复问题 - 应该是什么,然后回到utf8:
use Text::Iconv;
my $converter = Text::Iconv->new("utf8", "CP1255");
$content=$converter->convert($content);
my $converter = Text::Iconv->new("CP1255", "utf8");
$content=$converter->convert($content);
Run Code Online (Sandbox Code Playgroud)