exzample code:
var
str1 : String;
str2 : AnsiString;
....
str2 := ....;
str1 := String(str2);
Run Code Online (Sandbox Code Playgroud)
我按照上面的方法进行了转换,但没有成功。我发现 str1 中丢失了一些数据。是否有安全的方法将 AnsiString 转换为 UnicodeString?
我想将文本转换为 unicode 粗体格式。
我发现
如何使用 unicode 将文本转换为粗体大写字母?
谢谢
忽略有人想要这样做的原因.... :)
我希望能够获取一些字节,将它们转换为字符串,然后再返回相同的字节数组.相同的长度和一切.
我已经尝试过使用ASCIIEncoder类(仅适用于文本文件)和Unicode Encoder类(目前仅适用于1024*n大的数组.我认为这是因为每个字符的长度相等)并没有成功.
有没有简单的方法来做到这一点?我想我应该写自己的功能这样做吧?
我写了一些代码,它们向谷歌发送查询并返回查询结果.显然,检索的内容是unicode格式,所以当我把它们放在一个列表中并打印这个列表(整个列表一起而不是成员)时,一个恼人的额外'u'总是落后于所有成员.这个清单......我怎么能摆脱它们?我试图将整个文本转换为ascii,但因为文本中有一些非ascii字符(不同的语言)失败,现在你知道我应该做些什么来获得更好的输出吗?我希望这个额外的'你'不会有任何麻烦.谢谢
我一直在修补以下脚本:
# -*- coding: utf8 -*-
import codecs
from BeautifulSoup import BeautifulSoup, NavigableString,
UnicodeDammit
import urllib2,sys
import time
try:
import timeoutsocket # http://www.timo-tasi.org/python/timeoutsocket.py
timeoutsocket.setDefaultSocketTimeout(10)
except ImportError:
pass
h=u'\u3000\u3000\u4fe1\u606f\u901a\u4fe1\u6280\u672f'
address=urllib2.urlopen('http://stock.eastmoney.com/news/1408,20101022101395594.html').read()
soup=BeautifulSoup(address)
p=soup.findAll('p')
t=p[2].string[:10]
Run Code Online (Sandbox Code Playgroud)
具有以下输出:
打印
¡¡¡¡戴¢我
打印h
信息通
Ť
U '\ XA1\XA1\XA1\XA1\XD0\XC5\XCF\XA2\XCD\xa8'
H
U '\ U3000\U3000\u4fe1\u606f\u901a'
h.encode( 'GBK')
'\ XA1\XA1\XA1\XA1\XD0\XC5\XCF\XA2\XCD\xa8'
简单地说:当我通过BeautifulSoup传递这个html时,它采用gbk编码的文本并认为它是unicode,而不是认识到它需要先解码.然而,"h"和"t"应该是相同的,因为h只是我从html文件中获取文本并手动转换它.
我该如何解决这个问题?
最好
惠顿
在Delphi XE中,我使用的是BASS音频库,它包含以下功能:
function BASS_StreamCreateURL(url: PAnsiChar; offset: DWORD; flags: DWORD;
proc: DOWNLOADPROC; user: Pointer):HSTREAM; stdcall; external bassdll;
Run Code Online (Sandbox Code Playgroud)
'url'参数的类型为PAnsiChar,所以在我的代码中我做了一个强制转换:
FStreamHandle := BASS_StreamCreateURL(PAnsiChar( url ) [...]
Run Code Online (Sandbox Code Playgroud)
编译器在此行上发出警告:"对PAnsiChar的字符串的可疑类型转换".在试图消除警告时,我发现推荐的方法是使用双重投射:
FStreamHandle := BASS_StreamCreateURL(PAnsiChar( AnsiString( url )) [...]
Run Code Online (Sandbox Code Playgroud)
这确实消除了警告,但是BASS函数现在返回错误代码2("无法打开文件"),这告诉我它收到的URL字符串以某种方式被破坏.我无法看到低音DLL实际接收到的内容,但在调试器中使用断点时字符串看起来很好:
var
s : PAnsiChar;
begin
s := PAnsiChar( AnsiString( url ));
Run Code Online (Sandbox Code Playgroud)
此时字符串s显示正常,但是当我通过它时BASS功能失败.我的初始代码:PAnsiChar(url)与BASS配合良好,但会发出警告.
那么在没有警告的情况下从UnicodeString到PAnsiChar的正确方法是什么?
我正在使用C#在ASP.NET中开发一个Web应用程序.我将SQL表中的数据保存为Google Transliteration给出的Unicode字符.我本来应该用印地语.我没有关于添加数据的问题.但是当我使用"SELECT"语句时,在任何情况下都不会从数据库表中检索数据.
我的查询如下:
SELECT uid, family_head, member_name, house_no, address, f_h_name, gender, caste, dob, occupation, literacy, end_date
FROM family
WHERE (member_name = '????? ???????')
Run Code Online (Sandbox Code Playgroud)
它返回null.
我无法在excel中的VBA代码中编写阿拉伯字符串,它显示为奇怪的字符.在安装了或不安装阿拉伯校对工具的Windows 8或Windows 7上,在excel 2013或2010的许多机器上尝试过它.所有机器上都安装了阿拉伯语,系统语言环境是阿拉伯语.在excel工作表甚至MS字上键入阿拉伯字符没有问题,但在VBA代码中没有.请帮忙.
运行我的bash脚本时,出现以下错误:
./myscript.sh:[:16: ']' expected
Run Code Online (Sandbox Code Playgroud)
第16行是:
[ -d "$dir" ] && echo "$dir" && for file in "$dir"/*/*
Run Code Online (Sandbox Code Playgroud)
通常错误来自于[]条件中缺少的空间,但我没有忘记它.以下是从第14行开始的脚本的其余部分:
for dir in "$message_directory"/*
do
[ -d "$dir" ] && echo "$dir" && for file in "$dir"/*/*
do
if [ -d "$file" ] ; then
if [[ -f "$file"/Message.txt || -f "$file"/Message.html ]] ; then
hashMD5=$(md5sum "$file/message"* | cut -d " " -f1 | head -n 1)
todelete=$(find "$directory_to_check" -type f -not -path "*$message_directory*" -name "Message*" -exec md5sum "{}" \; …Run Code Online (Sandbox Code Playgroud) 所以我有这个字符串,我想从中删除非字母数字字符:
my_string = "¿Habla usted Inglés, por favor?"
Run Code Online (Sandbox Code Playgroud)
基本上,在这种情况下,我想摆脱?,¿和。然后,我将单词分成一个列表,并与每个单词做各种处理。
我在用
String.replace(my_string, my_regex, "")
String.split(" ")
Run Code Online (Sandbox Code Playgroud)
做工作。我尝试使用两个不同的正则表达式字符串:
my_regex = ~r/[\_\.,:;\?¿¡\!&@$%\^]/
my_regex = ~r/[[:punct:]]/
Run Code Online (Sandbox Code Playgroud)
第一个作品就像一种魅力。我最终得到:
["habla", "usted", "inglés"]
Run Code Online (Sandbox Code Playgroud)
第二个删除正确的字符,但我最终得到:
[<<194, 104, 97, 98, 108, 97>>, "usted", <<105, 110, 103, 108, 195, 115>>]
Run Code Online (Sandbox Code Playgroud)
起初,我认为奇怪的输出仅仅是由于将非ASCII Alpha转储到控制台。但是,当我尝试与预期的字符串列表进行匹配时,它将失败。
无论如何,我只是不明白为什么两个不同的正则表达式根据列表中的字符串导致不同的输出。
这是可以在iex中运行以简洁地重现我的问题的代码:
a = ~r/[\_\.,:;\?¿¡\!&@$%\^]/
b = ~r/[[:punct:]]/
y = "¿Habla usted Inglés, por favor?"
String.replace(y, a, "")
# -> "Habla usted Inglés por favor"
String.replace(y, b, "")
# -> <<194, 72, 97, 98, 108, 97, 32, 117, …Run Code Online (Sandbox Code Playgroud) unicode-string ×10
unicode ×4
ansistring ×2
delphi ×2
python ×2
arabic ×1
asp.net ×1
bash ×1
byte ×1
c# ×1
c#-4.0 ×1
delphi-xe ×1
delphi-xe4 ×1
elixir ×1
encoding ×1
excel ×1
javascript ×1
locale ×1
pointers ×1
regex ×1
sql-server ×1
string ×1
syntax-error ×1
vba ×1
web-scraping ×1