javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

unicode-UTF-8,UTF-16和UTF-32可以存储的字符数是否不同?

好的。 我知道这看起来像是典型的“为什么他不只是使用Google或访问www.unicode.org进行查找?” 问题,但是对于这样一个简单的问题,在检查了两个来源之后,答案仍然难以理解。

我非常确定这三个编码系统都支持所有Unicode字符,但是在演示文稿中声明之前,我需要进行确认。

额外的问题:这些编码在可扩展支持的字符数方面是否有所不同?

trans by 2020-02-22T19:25:30Z

'\ u2028'unicode ch上的Javascript解析错误

每当我在我的javascript源中使用\ u2028字符文字并将其内容类型设置为“ text / html; charset = utf-8”时,我都会收到javascript解析错误。

例:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>json</title>

    <script type="text/javascript" charset="utf-8">
    var string = '
    ';
    </script>
</head>
<body>

</body>
</html>

如果忽略了<meta http-equiv>,则一切正常。 我已经在Safari和Firefox上进行了测试,它们都存在相同的问题。

关于为什么发生这种情况以及如何正确解决此问题(不删除编码)的任何想法?

编辑:经过更多研究后,具体问题是使用JSONP返回了问题字符。 然后由浏览器解释,这将u2028读为换行符,并在字符串中引发有关无效换行符的错误。

trans by 2020-02-22T18:21:29Z

CodeGo.net> WebClient的Unicode-哪个UTF8?

当我创建一个WebClient来使用一些RESTful xml时,我可以通过2种方式指定unicode编码:

WebClient wc = new WebClient ();
wc.Encoding = Encoding.UTF8;
wc.Encoding = UTF8Encoding.UTF8;

哪个正确/更好?

trans by 2020-02-22T04:31:34Z

如何将char *转换为wchar_t *?

我已经尝试实现这样的功能,但是不幸的是它不起作用:

const wchar_t *GetWC(const char *c)
{
    const size_t cSize = strlen(c)+1;
    wchar_t wc[cSize];
    mbstowcs (wc, c, cSize);

    return wc;
}

我这里的主要目标是能够在Unicode应用程序中集成普通的char字符串。 大家可以提供任何建议,我们将不胜感激。

trans by 2020-02-20T19:12:34Z

禁止python字符串中的u'prefix指示unicode'

有没有办法全局抑制python中的unicode字符串指示器? 我在应用程序中专门处理unicode,并做了很多交互式的工作。 在所有调试输出中都显示u'prefix'是不必要且令人讨厌的。 可以关闭吗?

trans by 2020-02-20T13:54:04Z

python-urllib.urlencode不喜欢unicode值:这种解决方法如何?

如果我有一个像这样的对象:

d = {'a':1, 'en': 'hello'}

...然后我可以将其传递给type(),没问题:

percent_escaped = urlencode(d)
print percent_escaped

但是,如果我尝试传递值类型为type()的对象,则游戏结束:

d2 = {'a':1, 'en': 'hello', 'pt': u'olá'}
percent_escaped = urlencode(d2)
print percent_escaped # This fails with a UnicodeEncodingError

所以我的问题是有关准备传递给type()的对象的可靠方法。

我想到了这个函数,在其中我简单地遍历对象并编码string或unicode类型的值:

def encode_object(object):
  for k,v in object.items():
    if type(v) in (str, unicode):
      object[k] = v.encode('utf-8')
  return object

这似乎可行:

d2 = {'a':1, 'en': 'hello', 'pt': u'olá'}
percent_escaped = urlencode(encode_object(d2))
print percent_escaped

然后输出type(),准备传递给POST调用或其他任何东西。

但是我的type()函数对我来说真的很不稳定。 一方面,它不处理嵌套对象。

另一方面,我对if语句感到紧张。 我还应该考虑其他类型吗?

并将这种东西type()与本机对象进行比较,就像这样的好习惯吗?

type(v) in (str, unicode) # not so sure about this...

谢谢!

trans by 2020-02-20T13:12:34Z

html-真棒字体和Unicode

我在网站上使用了(出色的)Font-Awesome,并且如果我以这种方式使用它,则可以正常工作:

<i class="icon-home"></i>

但是(出于某些原因)我想以Unicode方式使用它,例如:

<i>&#xf015;</i>

(字体很棒的速查表)

但这不起作用-浏览器显示一个正方形。

我该如何解决?CSS路径是正确的(作为使用Font Awesome的第一种方法有效)。

编辑:我确实安装了FontAwesome.otf。

trans by 2020-02-20T02:41:29Z

如何在python中取消对urlencoded unicode字符串的引用?

我有一个类似“Tanım”的Unicode字符串,以某种方式编码为“ Tan%u0131m”。 我如何将这个编码后的字符串转换回原始的unicode。显然urllib.unquote不支持unicode。

trans by 2020-02-18T21:53:57Z

CSS-ISO-8859-1与UTF-8?

应该使用什么以及何时使用? 还是始终使用UTF-8总是更好? 还是ISO-8859-1在特定条件下仍然很重要?

字符集与地理区域有关吗?


编辑:

输入此代码<link type="text/css; charset=utf-8" rel="stylesheet" href=".." />有什么好处?

或这样的<link type="text/css; charset=utf-8" rel="stylesheet" href=".." />

在CSS文件的顶部?

我为此找到了

如果DreamWeaver在您添加标签时   在文档中添加嵌入样式,   那是DreamWeaver中的错误。 来自   W3C常见问题解答:

“对于嵌入在样式表中的样式声明   文档,@ charset规则不是   是必需的,绝不能使用。”

字符集规范是   CSS自2.0版(1998年5月)开始,因此   如果您有一个字符集规范   一个CSS文件,而Safari无法处理,   那是Safari中的错误。

并以表格形式添加accept-charset

<form action="/action" method="post" accept-charset="utf-8">

以及如果我使用xhtml doctype应该使用什么

<?xml version="1.0" encoding="UTF-8"?>

要么

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
trans by 2020-02-18T04:29:57Z

我如何将io.StringIO()与csv模块一起使用?

我试图将Python 3程序反向移植到2.7,但遇到了一个奇怪的问题:

>>> import io
>>> import csv
>>> output = io.StringIO()
>>> output.write("Hello!")            # Fail: io.StringIO expects Unicode
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unicode argument expected, got 'str'
>>> output.write(u"Hello!")           # This works as expected.
6L
>>> writer = csv.writer(output)       # Now let's try this with the csv module:
>>> csvdata = [u"Hello", u"Goodbye"]  # Look ma, all Unicode! (?)
>>> writer.writerow(csvdata)          # Sadly, no.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unicode argument expected, got 'str'

根据文档,StringIO.StringIO()返回Unicode文本的内存流。 当我尝试手动输入Unicode字符串时,它可以正常工作。 即使写入的所有字符串都是Unicode字符串,为什么它也不能与StringIO.StringIO()模块一起失败? io.StringIO()的异常源于何处?

(我知道我可以改用StringIO.StringIO(),但是我想知道在这种情况下io.StringIO()怎么了)

trans by 2020-02-15T12:13:12Z

如何使用Unicode文件名打开std :: fstream(ofstream或ifstream)?

您不会想到像使用Windows应用程序的C ++标准库打开文件这样的基本操作会很棘手……但是看起来确实如此。 这里所说的Unicode是指UTF-8,但是我可以转换为UTF-16或其他任何形式,关键是要从Unicode文件名获取一个ofstream实例。 在整理自己的解决方案之前,这里有首选的方法吗? 尤其是跨平台的一个?

trans by 2020-02-14T19:07:19Z

将unicode字符串字典转换为python中的字典

我有unicode unicodedata.normalize('NFKD', my_data).encode('ascii','ignore'),并且我希望它采用字典格式。

我想要unicodedata.normalize('NFKD', my_data).encode('ascii','ignore')格式。

我尝试了unicodedata.normalize('NFKD', my_data).encode('ascii','ignore'),但它返回的字符串不是字典。

谁能帮我?

trans by 2020-02-14T12:56:54Z

Python中的Unicode标识符?

我想建立一个Python函数来计算

alt text

并想命名我的求和函数Σ。 以类似的方式,想将Π用于产品,依此类推。 我想知道是否有一种以这种方式命名python函数的方法?

def Σ (..):
 ..
 ..

也就是说,Python是否支持unicode标识符,如果是,有人可以为此提供示例吗?

谢谢!


最初的动机是我今天看到的一段Clojure代码,

(defn entropy [X]
      (* -1 (Σ [i X] (* (p i) (log (p i))))))

其中Σ是定义为的宏,

(defmacro Σ
    ... )

我觉得那很酷。


顺便说一句,要解决一些关于可读性的评论-例如,使用大量的stats / ML代码,能够用符号组合运算将非常有帮助。 (特别是对于非常复杂的积分等)

φ(z) = ∫(N(x|0,1,1), -∞, z)

Phi(z) = integral(N(x|0,1,1), -inf, z)

甚至只是lambda()的lambda字符!

trans by 2020-02-14T12:04:31Z

变量-Java为什么在其标识符中允许使用控制字符?

在精确地探究Java标识符中允许使用哪些字符时,我偶然发现了一件非常奇怪的事情,以至于几乎可以肯定这是一个错误。

我希望发现Java标识符符合以下要求:它们以具有Unicode属性Current_Symbol的字符开头,然后是具有ID_Continue的字符,但下划线和美元符号除外。 事实并非如此,我发现与我所听说的那种普通标识符或其他任何想法都存在极大差异。

简短演示

请考虑以下演示,证明Java标识符中允许使用ASCII ESC字符(八进制033):

$ perl -le 'print qq(public class escape { public static void main(String argv[]) { String var_\033 = "i am escape: \033"; System.out.println(var_\033); }})' > escape.java
$ javac escape.java
$ java escape | cat -v
i am escape: ^[

不过,甚至比那更糟。 实际上,几乎无限恶化。 甚至允许NULL! 还有成千上万个甚至不是标识符字符的代码点。 我已经在Solaris,Linux和运行Darwin的Mac上进行了测试,所有结果均相同。

长演示

这是一个测试程序,它将显示Java完全允许作为合法标识符名称的一部分的所有这些意外代码点。

#!/usr/bin/env perl
# 
# test-java-idchars - find which bogus code points Java allows in its identifiers
# 
#   usage: test-java-idchars [low high]
#   e.g.:  test-java-idchars 0 255
#
# Without arguments, tests Unicode code points
# from 0 .. 0x1000.  You may go further with a
# higher explicit argument.
#
# Produces a report at the end.
#
# You can ^C it prematurely to end the program then
# and get a report of its progress up to that point.
#
# Tom Christiansen
# tchrist@perl.com
# Sat Jan 29 10:41:09 MST 2011

use strict;
use warnings;

use encoding "Latin1";
use open IO => ":utf8";

use charnames ();

$| = 1;

my @legal;

my ($start, $stop) = (0, 0x1000);

if (@ARGV != 0) {
    if (@ARGV == 1) {
        for (($stop) = @ARGV) { 
            $_ = oct if /^0/;   # support 0OCTAL, 0xHEX, 0bBINARY
        }
    }
    elsif (@ARGV == 2) {
        for (($start, $stop) = @ARGV) { 
            $_ = oct if /^0/;
        }
    } 
    else {
        die "usage: $0 [ [start] stop ]\n";
    } 
} 

for my $cp ( $start .. $stop ) {
    my $char = chr($cp);

    next if $char =~ /[\s\w]/;

    my $type = "?";
    for ($char) {
        $type = "Letter"      if /\pL/;
        $type = "Mark"        if /\pM/;
        $type = "Number"      if /\pN/;
        $type = "Punctuation" if /\pP/;
        $type = "Symbol"      if /\pS/;
        $type = "Separator"   if /\pZ/;
        $type = "Control"     if /\pC/;
    } 
    my $name = $cp ? (charnames::viacode($cp) || "<missing>") : "NULL";
    next if $name eq "<missing>" && $cp > 0xFF;
    my $msg = sprintf("U+%04X %s", $cp, $name);
    print "testing \\p{$type} $msg...";
    open(TESTPROGRAM, ">:utf8", "testchar.java") || die $!;

print TESTPROGRAM <<"End_of_Java_Program";

public class testchar { 
    public static void main(String argv[]) { 
        String var_$char = "variable name ends in $msg";
        System.out.println(var_$char); 
    }
}

End_of_Java_Program

    close(TESTPROGRAM) || die $!;

    system q{
        ( javac -encoding UTF-8 testchar.java \
            && \
          java -Dfile.encoding=UTF-8 testchar | grep variable \
        ) >/dev/null 2>&1
    };

    push @legal, sprintf("U+%04X", $cp) if $? == 0;

    if ($? && $? < 128) {
        print "<interrupted>\n";
        exit;  # from a ^C
    } 

    printf "is %s in Java identifiers.\n",  
        ($? == 0) ? uc "legal" : "forbidden";

} 

END { 
    print "Legal but evil code points: @legal\n";
}

这是仅在前三个代码点(既不是空格也不是标识符字符)上运行该程序的示例:

$ perl test-java-idchars 0 0x20
testing \p{Control} U+0000 NULL...is LEGAL in Java identifiers.
testing \p{Control} U+0001 START OF HEADING...is LEGAL in Java identifiers.
testing \p{Control} U+0002 START OF TEXT...is LEGAL in Java identifiers.
testing \p{Control} U+0003 END OF TEXT...is LEGAL in Java identifiers.
testing \p{Control} U+0004 END OF TRANSMISSION...is LEGAL in Java identifiers.
testing \p{Control} U+0005 ENQUIRY...is LEGAL in Java identifiers.
testing \p{Control} U+0006 ACKNOWLEDGE...is LEGAL in Java identifiers.
testing \p{Control} U+0007 BELL...is LEGAL in Java identifiers.
testing \p{Control} U+0008 BACKSPACE...is LEGAL in Java identifiers.
testing \p{Control} U+000B LINE TABULATION...is forbidden in Java identifiers.
testing \p{Control} U+000E SHIFT OUT...is LEGAL in Java identifiers.
testing \p{Control} U+000F SHIFT IN...is LEGAL in Java identifiers.
testing \p{Control} U+0010 DATA LINK ESCAPE...is LEGAL in Java identifiers.
testing \p{Control} U+0011 DEVICE CONTROL ONE...is LEGAL in Java identifiers.
testing \p{Control} U+0012 DEVICE CONTROL TWO...is LEGAL in Java identifiers.
testing \p{Control} U+0013 DEVICE CONTROL THREE...is LEGAL in Java identifiers.
testing \p{Control} U+0014 DEVICE CONTROL FOUR...is LEGAL in Java identifiers.
testing \p{Control} U+0015 NEGATIVE ACKNOWLEDGE...is LEGAL in Java identifiers.
testing \p{Control} U+0016 SYNCHRONOUS IDLE...is LEGAL in Java identifiers.
testing \p{Control} U+0017 END OF TRANSMISSION BLOCK...is LEGAL in Java identifiers.
testing \p{Control} U+0018 CANCEL...is LEGAL in Java identifiers.
testing \p{Control} U+0019 END OF MEDIUM...is LEGAL in Java identifiers.
testing \p{Control} U+001A SUBSTITUTE...is LEGAL in Java identifiers.
testing \p{Control} U+001B ESCAPE...is LEGAL in Java identifiers.
testing \p{Control} U+001C INFORMATION SEPARATOR FOUR...is forbidden in Java identifiers.
testing \p{Control} U+001D INFORMATION SEPARATOR THREE...is forbidden in Java identifiers.
testing \p{Control} U+001E INFORMATION SEPARATOR TWO...is forbidden in Java identifiers.
testing \p{Control} U+001F INFORMATION SEPARATOR ONE...is forbidden in Java identifiers.
Legal but evil code points: U+0000 U+0001 U+0002 U+0003 U+0004 U+0005 U+0006 U+0007 U+0008 U+000E U+000F U+0010 U+0011 U+0012 U+0013 U+0014 U+0015 U+0016 U+0017 U+0018 U+0019 U+001A U+001B

这是另一个演示:

$ perl test-java-idchars 0x600 0x700 | grep -i legal
testing \p{Control} U+0600 ARABIC NUMBER SIGN...is LEGAL in Java identifiers.
testing \p{Control} U+0601 ARABIC SIGN SANAH...is LEGAL in Java identifiers.
testing \p{Control} U+0602 ARABIC FOOTNOTE MARKER...is LEGAL in Java identifiers.
testing \p{Control} U+0603 ARABIC SIGN SAFHA...is LEGAL in Java identifiers.
testing \p{Control} U+06DD ARABIC END OF AYAH...is LEGAL in Java identifiers.
Legal but evil code points: U+0600 U+0601 U+0602 U+0603 U+06DD

问题

谁能解释这个看似疯狂的行为? 从U + 0000开始,到处都有很多很多其他莫名其妙允许的代码点,这也许是最奇怪的。 如果在第一个0x1000代码点上运行它,您会看到确实出现了某些模式,例如允许使用属性Current_Symbol允许任何代码点和所有代码点。但是,至少对于我来说,还有太多其他情况是完全无法解释的。

trans by 2020-02-14T07:32:21Z

utf 8-UTF-8和Unicode,0xC0和0x80是什么?

在过去的几天里,我一直在阅读有关Unicode和UTF-8的信息,我经常遇到类似于以下内容的按位比较:

int strlen_utf8(char *s) 
{
  int i = 0, j = 0;
  while (s[i]) 
  {
    if ((s[i] & 0xc0) != 0x80) j++;
    i++;
  }
  return j;
}

有人可以澄清与0xc0的比较并检查它是否是最高有效位吗?

谢谢!

编辑:ANDed,而不是比较,使用了错误的词;)

trans by 2020-02-11T22:33:13Z

C ++-将CString转换为const char *

如何在Unicode MFC应用程序中从CString转换为const char*

trans by 2020-02-07T20:56:52Z

powershell-是否有Windows命令外壳将显示Unicode字符?

假设我安装了带有适当字形的字体,那么Windows XP的命令外壳是否将显示Unicode字符? 至少应该正确显示Unicode的两件事:

  • 目录列表。 我不在乎我要键入什么(dir,ls,get-childitem等),只要名称中带有Unicode字符的文件显示正确的字形,而不是不可打印的字符框即可。
  • 文本文件内容列表。 再说一次,对我来说,是否是“少”,“多”,“猫”,“狗”等并不重要,只要打印出字符即可。 我认识到由于文件的字符编码,这更加复杂,因此如果我必须在命令行上指定它对我来说很好。

到目前为止,这是我尝试过的方法:

  • 命令文件
  • Windows PowerShell; 包括多语言版本。
  • Cygwin重击

没运气。 我什至尝试为cmd / PowerShell安装自定义字体。 在某种程度上,PowerShell和cmd.exe可以识别Unicode,因为我可以将不可打印的框复制/粘贴到其中,并将其粘贴到具有正确字符的其他应用程序中。 Cygwin(?)似乎转换为? 字符,并通过复制/粘贴来实现。

有任何想法吗?

trans by 2020-02-06T10:19:48Z

jQuery-Javascript:将Unicode字符串转换为十六进制

我正在尝试将Unicode字符串转换为javascript中的十六进制表示形式。

这就是我所拥有的:

function convertFromHex(hex) {
    var hex = hex.toString();//force conversion
    var str = '';
    for (var i = 0; i < hex.length; i += 2)
        str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
    return str;
}

function convertToHex(str) {
    var hex = '';
    for(var i=0;i<str.length;i++) {
        hex += ''+str.charCodeAt(i).toString(16);
    }
    return hex;
}

但是如果对像中文这样的unicode字符失败的话;

输入:汉字

输出:ªo[[W

有任何想法吗? 可以用javascript完成吗?

trans by 2020-02-06T06:41:16Z

网络服务-用户名中应允许使用Unicode吗?

为什么大多数(全部?)网站仅支持ASCII用户名? 如果管理员决定开始接受Unicode用户名,是否有安全方面的考虑?

trans by 2020-02-05T22:24:18Z

国际化-为什么我们不使用Unicode来做所有事情?

鉴于Unicode已经存在18年了,为什么还存在不支持Unicode的应用程序? 至少可以说,即使我在某些操作系统和Unicode方面的经验也很痛苦。 正如Joel Spolsky在2003年指出的那样,这并不难。 那怎么办? 我们为什么不能在一起?

trans by 2020-01-30T20:04:58Z

1 2 3 4 5 6 7 8 9 10 11 下一页 共11页