所以我正在编写一个程序并使用其他人编写的现有库。他们的库正在调用 TheMovieDatabase.com 并检索有关电影的信息,包括 Youtube 预告片名称,如“sErD7Y00R_8”。
当我调试并查看存储该值的预告片名称字符串变量时,它显示为“sErD7Y00R_8”,但是当它插入我的数据库或打印到控制台时,它似乎附加了一个?(问号)到最后,显示如下:“sErD7Y00R_8?”
这显然给我带来了一些问题。我不明白它为什么这样做以及如何解决它。我只能猜测它是一些非常规文本字符或其他东西,但这只是一个猜测。
这是包装器库的链接: https://github.com/LordMike/TMDbLib/
这是我在包装器库中调用的方法,传入 ID 143049:
TMDbLib.Objects.Movies.Movie tmdbMovie = client.GetMovie(id, MovieMethods.Credits | MovieMethods.Keywords | MovieMethods.Images | MovieMethods.Trailers | MovieMethods.Reviews | MovieMethods.Releases);
Run Code Online (Sandbox Code Playgroud)
这是之后立即打印到控制台的内容:
Console.WriteLine("'" + tmdbMovie.Trailers.Youtube[i].Source + "'");
Run Code Online (Sandbox Code Playgroud)
.Length 属性返回 12,因此它看起来是 1 个字符,它不会在调试器中显示,但会打印为 ? 在控制台中
根据评论,我打印出了 Encoding.GetBytes 详细信息:
Encoding the entire string:
System.Text.UTF7Encoding : 20 38 :73 45 72 44 37 59 30 30 52 2B 41 46 38 2D 38 2B 49 41 34 2D
System.Text.UTF8Encoding : 14 39 :73 45 72 44 37 …Run Code Online (Sandbox Code Playgroud) #!/usr/bin/python\n# -*- coding: utf-8 -*-\n\nimport re\nseparators = [u"\xe0\xa5\xa4", u",", u"."]\ndat=open(r"C:\\Users\\User\\Desktop\\text4.txt",\'r\').read()\ntext=dat.decode("utf-8")\nwros=text.split()\nout=""\nimport string\nspace=" "\ncounter=0;\nfor word in wros:\n out=u" ".join(word)\n\nwrit=open("C:\\\\Users\\\\User\\\\Desktop\\\\text5.txt",\'w\')\nwrit.write(out.encode(\'utf-8\'))\nwrit.close()\nRun Code Online (Sandbox Code Playgroud)\n\ntext4.txt 包含 \xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa4 \xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\x87\xe0\xa4 \xa4\xe0\xa4\xbf\xe0\xa4\xb9\xe0\xa4\xbe\xe0\xa4\xb8 \xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xab\xe0\xa5\x80 \xe0\xa4\xb8\xe0\xa4\xae\xe0\xa5\x83\xe0\xa4\xa6\xe0\xa5\x8d\xe0\xa4\xa7\xe0\xa4\x8f\xe0\xa4\xb5\xe0 \xa4\x82 \xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa5\x83\xe0\xa4\xa4\xe0\xa4 \xb9\xe0\xa5\x88\xe0\xa5\xa4\ntext5.txt 输出为 \xe0\xa4\xb9 \xe0\xa5\x88 \xe0\xa5\xa4
\n\n所需的输出为 \xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa4 \xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\x87\xe0\xa4\ xa4\xe0\xa4\xbf\xe0\xa4\xb9\xe0\xa4\xbe\xe0\xa4\xb8\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xab\xe0\xa5\x80 \ xe0\xa4\xb8\xe0\xa4\xae\xe0\xa5\x83\xe0\xa4\xa6\xe0\xa5\x8d\xe0\xa4\xa7\xe0\xa4\x8f\xe0\xa4\xb5\xe0\ xa4\x82\xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa5\x83\xe0\xa4\xa4\xe0\xa4\ xb9\xe0\xa5\x88\xe0\xa5\xa4
\n\n请告诉我我所做的事情是错误的?\n需要帮助!提前致谢
\n这里有一个如何在堆栈交换上调用 CreateProcess 的示例,但是 Windows 10 似乎不再支持此功能,并且您必须使用 unicode 版本 CreateProcessW。
与 ASCI 版本类似,我正在寻找一个示例:
u'\\u02c7'.isalpha()如果符号\xcb\x87不是字母,为什么返回 True?此方法仅适用于 ASCII 字符吗?
我希望能够计算输入中有多少韩文字母,就像我处理英文字母和数字一样:
a=0
b=0
c=0
d=0
e=0
num = input("type something ")
for i in num:
if(i.isupper()):
a=a+1
elif(i.islower()):
b=b+1
elif(i.isdigit()):
c=c+1
print("uppercase letters: ",a)
print("lowercase letters: ",b)
print("numbers: ",c)
print("korean letters: ",d)
Run Code Online (Sandbox Code Playgroud)
但我不知道该怎么做,我是否必须以ord()某种方式合并?
首先,我知道这违反了所有惯例和建议,但无论如何我想这样做。
\n我如何(或者是否有可能)在标识符(方法名称、变量名称等)中使用 Unicode 字符来编译 Java 代码?
\n我希望能够执行以下操作:
\npublic class extends {\n public void \xd1\x81\xd0\xb4\xd0\xb5\xd0\xbb\xd0\xb0\xd0\xb9\xd0\xa7\xd1\x82\xd0\xbe\xd0\xbd\xd0\xb8\xd0\xb1\xd1\x83\xd0\xb4\xd1\x8c() { ... }\n}\nRun Code Online (Sandbox Code Playgroud)\n这是一个完全荒谬的例子,但你明白了。
\n有一些方法可以使用 unicode 在 javascript 中打印字母,例如
console.log(\u0062)产生 ab ,所以它与 put 相同console.log(b)
但现在,我确实知道有一些方法可以 console.log 粗体字母,例如
console.log('')
Run Code Online (Sandbox Code Playgroud)
在控制台中打印粗体字。
但是,例如以粗体打印的函数是什么?
这是我的想法
const printBold = (word: string) => {
//splits the string, gets every letter, and replaces with the bold unicode equivalent
}
Run Code Online (Sandbox Code Playgroud)
但是...我无法找到粗体字母的等效 unicode,或者创建以粗体登录的函数的方法。
也许我可以做类似的事情
const map = {
"a": "bold_a",
"b": ''
}
Run Code Online (Sandbox Code Playgroud)
并向转换器提供该数据,但是...我从哪里获得粗体 unicode 或字符?我唯一能找到的,我从这个答案复制了它们 /sf/answers/4939874481/
如何解码这样的unicode字符串:
什么%2527s%2bthe%2btime%252C%2bnow%253F
像这样的ascii:
什么+的+时间+现在
在Python 2.7的文档中,有关Unicode的三条规则描述如下:
如果代码点<128,则由相应的字节值表示.
如果代码点在128和之间
0x7ff,则它变成128到255之间的两个字节值.代码点>
0x7ff被转换为三字节或四字节序列,其中序列的每个字节在128和255之间.
然后我做了一些测试:
>>>> unichr(40960)
u'\ua000'
>>> ord(u'\ua000')
40960
Run Code Online (Sandbox Code Playgroud)
在我看来,40960是一个代码点> 0x7ff,所以它应该变成三个或四个字节的序列,其中序列的每个字节在128到255之间,但它只能变成两个字节的序列,并且u'\ a000'中的值'00'低于128,与上述规则不匹配.为什么?
更重要的是,我发现了一些更多的Unicode字符,比如u'\u1234'等.我发现它中的值("12"&&"34")也低于128,但根据首先提到的理论,它们不应该是低于128.我失去了任何其他理论?
谢谢你的所有答案.
我查看了 Windows 计算器,我看到在科学模式下,有一个按钮显示为“x 的 y 根”,如下所示:
我希望在我自己的 Swing 项目中复制此按钮的外观。有没有办法这样做?我看过 Unicode 字符,但没有这个特殊符号。