问题:
这个问题有方法解决吗?
谢谢.
我接下来的部分代码:
In [8]: st = u"???"
In [11]: st.encode("ascii", "xmlcharrefreplace")
Out[11]: 'опа'
In [14]: st1 = st.encode("ascii", "xmlcharrefreplace")
In [15]: st1.decode("ascii", "xmlcharrefreplace")
Out[15]: u'опа'
In [16]: st1.decode("utf-8", "xmlcharrefreplace")
Out[16]: u'опа'
Run Code Online (Sandbox Code Playgroud)
你知道如何转换st1回来u"???"吗?
我有以下代码:
stru = "??????????"
strlist = stru.decode("utf-8").split()
print strlist[0]
Run Code Online (Sandbox Code Playgroud)
我的输出是:
??????????
Run Code Online (Sandbox Code Playgroud)
但是当我使用时:
print strlist[1]
Run Code Online (Sandbox Code Playgroud)
我得到以下内容traceback:
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
我的问题 是,我怎么能split我的string?当然,请记住我string从a 获得了function,认为它是一个variable?
是否建议使用strcmp或_tcscmp来比较Unicode版本中的字符串?
我已经使用从web服务检索的unicode字符串requests模块,它包含一个二进制文件的字节(PCL,因为它发生).其中一个字节的值为248,尝试对其进行base64编码会导致以下错误:
In [68]: base64.b64encode(response_dict['content']+'\n')
---------------------------------------------------------------------------
UnicodeEncodeError Traceback (most recent call last)
C:\...\<ipython-input-68-8c1f1913eb52> in <module>()
----> 1 base64.b64encode(response_dict['content']+'\n')
C:\Python27\Lib\base64.pyc in b64encode(s, altchars)
51 """
52 # Strip off the trailing newline
---> 53 encoded = binascii.b2a_base64(s)[:-1]
54 if altchars is not None:
55 return _translate(encoded, {'+': altchars[0], '/': altchars[1]})
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf8' in position 272: ordinal not in range(128)
In [69]: response_dict['content'].encode('base64')
---------------------------------------------------------------------------
UnicodeEncodeError Traceback (most recent call last)
C:\...\<ipython-input-69-7fd349f35f04> in <module>() …Run Code Online (Sandbox Code Playgroud) python base64 character-encoding unicode-string python-unicode
我知道这个问题可能非常基础.如果这是显而易见的事,请原谅我.考虑以下程序:
#include <stdio.h>
int main(void) {
// this is a string in English
char * str_1 = "This is a string.";
// this is a string in Russian
char * str_2 = "??? ????????? ?????????.";
// iterator
int i;
// print English string as a string
printf("%s\n", str_1);
// print English string byte by byte
for(i = 0; str_1[i] != '\0'; i++) {
printf(" %c ",(char) str_1[i]);
}
printf("\n");
// print numerical values of English string byte by byte
for(i …Run Code Online (Sandbox Code Playgroud) 所以,我正在研究一个普通的C(ANSI 9899:1999)项目,我正在试图弄清楚从哪里开始:Unicode,UTF-8和所有爵士乐.
具体来说,它是一个语言解释器项目,我有两个主要的地方,我需要处理Unicode:读取源文件(表面上支持Unicode标识符的语言等),以及'字符串'对象.
我熟悉所有关于Unicode,UTF-7/8/16/32和UCS-2/4的明显基础知识,等等......我主要是寻找有用的,特定于C的(也就是说,请没有C++或C#,这就是之前在SO上记录的所有资源)关于实现Unicode友好的东西的"后续步骤"的资源......在C.
任何链接,联机帮助页,维基百科文章,示例代码都非常受欢迎.我还将尝试在原始问题中维护此类资源的列表,以供稍后发生的任何人使用.
man 3 iconv(以及iconv_open和iconvctl)libbasekit,似乎包括轻型Unicode处理工具在Python中,如果我有一个像这样的字符串:
a =" Hello - to - everybody"
Run Code Online (Sandbox Code Playgroud)
我做到了
a.split('-')
Run Code Online (Sandbox Code Playgroud)
然后我明白了
[u'Hello', u'to', u'everybody']
Run Code Online (Sandbox Code Playgroud)
这只是一个例子.
如何在没有烦人的情况下获得一份简单的清单?
我正在尝试制作一个替代阿拉伯语文本的代码,以支持非阿拉伯语支持的程序
,因为我需要在替换后反转文本,但它显示一些垃圾内容而不是想要的结果
这是代码:
<?php
$string = "???? ??";
echo "$string <br>";
$Reversed = strrev($string);
echo "<br><b>After Reverse</b><br><br>";
echo "<br> $Reversed";
?>
Run Code Online (Sandbox Code Playgroud)
结果:
???? ??
After Reverse
??? ????
Run Code Online (Sandbox Code Playgroud)
我需要它是它的方式,但逆转?不是垃圾!!
我正在为移动应用程序构建API,我似乎在计算包含表情符号的字符串的长度时遇到问题.我的代码:
$str = "?? @mention";
printf("strlen: %d" . PHP_EOL, strlen($str));
printf("mb_strlen UTF-8: %d" . PHP_EOL, mb_strlen($str, "UTF-8"));
printf("mb_strlen UTF-16: %d" . PHP_EOL, mb_strlen($str, "UTF-16"));
printf("iconv UTF-16: %d" . PHP_EOL, iconv_strlen(iconv("UTF-8", "UTF-16", $str)));
printf("iconv UTF-16: %d" . PHP_EOL, iconv_strlen(iconv("ISO-8859-1", "UTF-16", $str)));
Run Code Online (Sandbox Code Playgroud)
这个的反应是:
strlen: 27
mb_strlen UTF-8: 14
mb_strlen UTF-16: 13
iconv UTF-16: 14
iconv UTF-16: 27
Run Code Online (Sandbox Code Playgroud)
但是我应该得到17分.我们尝试在iOS,Android和Windows手机上使用字符串长度,它到处都是17.iOS(swift)片段:
var str = "?? @mention"
(str as NSString).length // 17
count(str) // 13
count(str.utf16) // 17
count(str.utf8) // 27
Run Code Online (Sandbox Code Playgroud)
由于库,我们需要使用NSString.我需要这个来获得"@mention"的起始位置和结束位置.如果字符串仅包含文本或仅包含表情符号,则它可以正常工作,因此混合内容可能存在一些问题.
我究竟做错了什么?还有什么其他信息可以让你们让我们朝着正确的方向前进?
谢谢!