คำถามติดแท็ก unicode

Unicode เป็นมาตรฐานสำหรับการเข้ารหัสการแสดงและการจัดการข้อความด้วยความตั้งใจที่จะสนับสนุนอักขระทั้งหมดที่จำเป็นสำหรับข้อความที่เขียนซึ่งประกอบด้วยระบบการเขียนทั้งหมดสัญลักษณ์ทางเทคนิคและเครื่องหมายวรรคตอน

16
UnicodeDecodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถถอดรหัสไบต์ 0xef ในตำแหน่ง 1
ฉันมีปัญหาเล็กน้อยในการพยายามเข้ารหัสสตริงเป็น UTF-8 ฉันได้ลองทำสิ่งต่างๆมากมายรวมถึงการใช้string.encode('utf-8')และunicode(string)แต่ฉันได้รับข้อผิดพลาด: UnicodeDecodeError: ตัวแปลงสัญญาณ 'ascii' ไม่สามารถถอดรหัสไบต์ 0xef ในตำแหน่ง 1: ลำดับไม่อยู่ในช่วง (128) นี่คือสตริงของฉัน: (。・ω・。)ノ ฉันไม่เห็นว่ามีอะไรผิดพลาดมีความคิดอย่างไร แก้ไข: ปัญหาคือการพิมพ์สตริงเนื่องจากแสดงไม่ถูกต้อง นอกจากนี้ข้อผิดพลาดนี้เมื่อฉันพยายามแปลง: Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> s = '(\xef\xbd\xa1\xef\xbd\xa5\xcf\x89\xef\xbd\xa5\xef\xbd\xa1)\xef\xbe\x89' >>> s1 = s.decode('utf-8') >>> print s1 Traceback …
106 python  unicode  utf-8 

3
ฉันจะดำเนินการ "เริ่มต้นด้วย" ที่คำนึงถึงวัฒนธรรมจากตรงกลางของสตริงได้อย่างไร
ฉันมีข้อกำหนดที่ค่อนข้างคลุมเครือ แต่รู้สึกว่าควรเป็นไปได้โดยใช้ BCL สำหรับบริบทผมแยกสตริงวันที่ / เวลาในNoda เวลา ฉันรักษาเคอร์เซอร์แบบลอจิคัลสำหรับตำแหน่งของฉันภายในสตริงอินพุต ดังนั้นในขณะที่สตริงที่สมบูรณ์อาจเป็น "3 มกราคม 2013" เคอร์เซอร์แบบลอจิคัลอาจอยู่ที่ "J" ตอนนี้ฉันต้องแยกวิเคราะห์ชื่อเดือนโดยเปรียบเทียบกับชื่อเดือนที่รู้จักทั้งหมดสำหรับวัฒนธรรม: วัฒนธรรมที่อ่อนไหว ตัวพิมพ์เล็กและใหญ่ จากจุดของเคอร์เซอร์ (ไม่ใช่ในภายหลังฉันต้องการดูว่าเคอร์เซอร์กำลัง "ดู" ชื่อเดือนของผู้สมัครหรือไม่) อย่างรวดเร็ว ... และฉันต้องรู้ว่าหลังจากนั้นใช้อักขระกี่ตัว รหัสปัจจุบันCompareInfo.Compareการทำเช่นนี้โดยทั่วไปจะทำงานโดยใช้ มันเป็นแบบนี้อย่างมีประสิทธิภาพ (สำหรับส่วนที่ตรงกัน - มีโค้ดมากกว่าของจริง แต่ไม่เกี่ยวข้องกับการจับคู่): internal bool MatchCaseInsensitive(string candidate, CompareInfo compareInfo) { return compareInfo.Compare(text, position, candidate.Length, candidate, 0, candidate.Length, CompareOptions.IgnoreCase) == 0; } อย่างไรก็ตามขึ้นอยู่กับผู้สมัครและภูมิภาคที่เราเปรียบเทียบว่ามีความยาวเท่ากัน ดีเกือบตลอดเวลา …
106 .net  string  unicode 

4
ฉันจะวนซ้ำผ่านจุดรหัสยูนิโคดของสตริง Java ได้อย่างไร
ดังนั้นฉันจึงรู้เกี่ยวกับString#codePointAt(int)แต่มันถูกสร้างดัชนีโดยการcharชดเชยไม่ใช่โดยการชดเชยจุดรหัส ฉันกำลังคิดจะลองทำสิ่งต่างๆเช่น: ใช้String#charAt(int)เพื่อรับcharดัชนี ทดสอบว่าcharอยู่ในช่วงตัวแทนสูงหรือไม่ ถ้าเป็นเช่นนั้นให้ใช้String#codePointAt(int)เพื่อรับจุดรหัสและเพิ่มดัชนีขึ้น 2 ถ้าไม่ใช้charค่าที่กำหนดเป็นจุดรหัสและเพิ่มดัชนีขึ้น 1 แต่ความกังวลของฉันคือ ฉันไม่แน่ใจว่าจุดรหัสที่อยู่ในช่วงตัวแทนระดับสูงจะถูกจัดเก็บเป็นสองcharค่าหรือค่าเดียว นี่ดูเหมือนเป็นวิธีที่แพงมากในการวนซ้ำผ่านตัวละคร ใครบางคนต้องมีสิ่งที่ดีกว่า
106 java  string  unicode 

9
ข้อผิดพลาดการเข้ารหัส Python Unicode
ฉันกำลังอ่านและแยกวิเคราะห์ไฟล์ Amazon XML และในขณะที่ไฟล์ XML แสดงเครื่องหมาย 'เมื่อฉันพยายามพิมพ์ฉันได้รับข้อผิดพลาดต่อไปนี้: 'ascii' codec can't encode character u'\u2019' in position 16: ordinal not in range(128) จากสิ่งที่ฉันอ่านทางออนไลน์จนถึงตอนนี้ข้อผิดพลาดเกิดจากข้อเท็จจริงที่ว่าไฟล์ XML อยู่ใน UTF-8 แต่ Python ต้องการจัดการเป็นอักขระที่เข้ารหัส ASCII มีวิธีง่ายๆในการทำให้ข้อผิดพลาดหายไปและให้โปรแกรมของฉันพิมพ์ XML ตามที่อ่านหรือไม่
105 python  unicode  ascii  encode 

5
ใช้ awk เพื่อลบเครื่องหมายลำดับไบต์
วิธีจะawkสคริปต์ (สันนิษฐานหนึ่งซับ) ถอดBOMมีลักษณะเหมือน? ข้อมูลจำเพาะ: พิมพ์ทุกบรรทัดหลังจากแรก ( NR > 1) สำหรับบรรทัดแรก: หากขึ้นต้นด้วย#FE #FFหรือ#FF #FEให้ลบออกและพิมพ์ส่วนที่เหลือ

12
ความยาวสตริงเป็นไบต์ใน JavaScript
ในโค้ด JavaScript ของฉันฉันต้องเขียนข้อความไปยังเซิร์ฟเวอร์ในรูปแบบนี้: <size in bytes>CRLF <data>CRLF ตัวอย่าง: 3 foo ข้อมูลอาจมีอักขระ Unicode ฉันต้องการส่งเป็น UTF-8 ฉันกำลังมองหาวิธีข้ามเบราว์เซอร์ที่มากที่สุดในการคำนวณความยาวของสตริงเป็นไบต์ใน JavaScript ฉันได้ลองทำสิ่งนี้เพื่อสร้างน้ำหนักบรรทุกของฉัน: return unescape(encodeURIComponent(str)).length + "\n" + str + "\n" แต่มันไม่ได้ให้ผลลัพธ์ที่ถูกต้องสำหรับฉันสำหรับเบราว์เซอร์รุ่นเก่า (หรืออาจเป็นสตริงในเบราว์เซอร์เหล่านั้นใน UTF-16?) เบาะแสใด ๆ ? อัปเดต: ตัวอย่าง: ความยาวเป็นไบต์ของสตริงЭЭХ! Naïve?ใน UTF-8 คือ 15 ไบต์ แต่บางเบราว์เซอร์รายงาน 23 ไบต์แทน

4
จะใช้สัญลักษณ์กรีกใน ggplot2 ได้อย่างไร?
หมวดหมู่ของฉันต้องตั้งชื่อด้วยตัวอักษรกรีก ฉันใช้ggplot2งานอยู่และใช้งานได้ดีกับข้อมูล น่าเสียดายที่ฉันไม่สามารถหาวิธีใส่สัญลักษณ์กรีกเหล่านั้นบนแกน x ได้ (ที่เครื่องหมายถูก) และทำให้มันปรากฏในคำอธิบายแผนภูมิ มีวิธีใดบ้างที่จะทำได้? อัปเดต: ฉันได้ดูลิงก์แล้วอย่างไรก็ตามไม่มีวิธีการที่ดีที่อธิบายถึงการบรรลุสิ่งที่ฉันต้องการ
105 r  graphics  unicode  utf-8  ggplot2 

5
จะใส่อักขระ Unicode ใน XAML ได้อย่างไร?
ฉันกำลังพยายามทำสิ่งนี้: <TextBlock Text="{Binding Path=Text, Converter={StaticResource stringFormatConverter}, ConverterParameter='&\u2014{0}'}" /> เพื่อให้ได้ - มาปรากฏหน้าข้อความ มันใช้ไม่ได้ ฉันควรทำอะไรที่นี่?
104 wpf  xaml  unicode  binding 

11
วิธีทำให้ตัวแปล python จัดการอักขระที่ไม่ใช่ ASCII ในการดำเนินการสตริงได้อย่างถูกต้อง?
ฉันมีสตริงที่ดูเหมือน: 6Â 918Â 417Â 712 วิธีตัดที่ชัดเจนในการตัดแต่งสตริงนี้ (ตามที่ฉันเข้าใจ Python) คือการบอกว่าสตริงอยู่ในตัวแปรที่เรียกว่าsเราได้รับ: s.replace('Â ', '') ที่ควรทำเคล็ดลับ แต่แน่นอนมันบ่นว่าอักขระที่ไม่ใช่ ASCII '\xc2'ในไฟล์ blabla.py ไม่ได้เข้ารหัส ฉันไม่เคยเข้าใจวิธีการสลับระหว่างการเข้ารหัสต่างๆ นี่คือรหัสจริงๆมันเหมือนกับด้านบน แต่ตอนนี้มันอยู่ในบริบท ไฟล์จะถูกบันทึกเป็น UTF-8 ในแผ่นจดบันทึกและมีส่วนหัวต่อไปนี้: #!/usr/bin/python2.4 # -*- coding: utf-8 -*- รหัส: f = urllib.urlopen(url) soup = BeautifulSoup(f) s = soup.find('div', {'id':'main_count'}) #making a print 's' here goes well. it shows …
103 python  unicode 

4
Python str เทียบกับประเภท Unicode
เมื่อทำงานกับ Python 2.7 ฉันสงสัยว่ามีประโยชน์อะไรบ้างในการใช้ประเภทunicodeแทนที่จะstrเป็นเพราะทั้งคู่ดูเหมือนจะสามารถถือสตริง Unicode ได้ มีเหตุผลพิเศษนอกเหนือจากความสามารถในการตั้งรหัส Unicode ในunicodeสตริงโดยใช้อักขระหลีก\หรือไม่: การใช้งานโมดูลด้วย: # -*- coding: utf-8 -*- a = 'á' ua = u'á' print a, ua ผลลัพธ์ใน: á, á แก้ไข: การทดสอบเพิ่มเติมโดยใช้ Python shell: >>> a = 'á' >>> a '\xc3\xa1' >>> ua = u'á' >>> ua u'\xe1' >>> ua.encode('utf8') '\xc3\xa1' >>> ua.encode('latin1') …
103 python  string  unicode 

8
การอ่านอักขระจากไฟล์ใน Python
ในไฟล์ข้อความมีสตริง "ฉันไม่ชอบสิ่งนี้" อย่างไรก็ตามเมื่ออ่านเป็นสตริงมันจะกลายเป็น "I don \ xe2 \ x80 \ x98t แบบนี้" ฉันเข้าใจว่า \ u2018 คือการแสดง Unicode ของ "" " ฉันใช้ f1 = open (file1, "r") text = f1.read() คำสั่งในการอ่าน ตอนนี้เป็นไปได้ไหมที่จะอ่านสตริงในลักษณะที่เมื่ออ่านเป็นสตริงแล้วมันคือ "ฉันไม่ชอบ" แทนที่จะเป็น "ฉันไม่ได้ xe2 \ x80 \ x98t แบบนี้" การแก้ไขครั้งที่สอง: ฉันเคยเห็นบางคนใช้การแมปเพื่อแก้ปัญหานี้ แต่จริงๆแล้วไม่มีการแปลงในตัวที่ทำให้การแปลง ANSI เป็น Unicode (และในทางกลับกัน) หรือไม่


5
เหตุใด Apache Commons จึงพิจารณาตัวเลข '१२३'
ตามเอกสารของ Apache Commons Lang สำหรับStringUtils.isNumeric()สตริง '१२३' เป็นตัวเลข เนื่องจากฉันเชื่อว่านี่อาจเป็นข้อผิดพลาดในเอกสารฉันจึงทำการทดสอบเพื่อยืนยันคำชี้แจง ฉันพบว่าตาม Apache Commons มันเป็นตัวเลข เหตุใดสายอักขระนี้จึงเป็นตัวเลข ตัวละครเหล่านั้นแสดงถึงอะไร?

6
gotchas ใด ๆ ที่ใช้ unicode_literals ใน Python 2.6?
เราได้รับฐานรหัสของเราที่ทำงานภายใต้ Python 2.6 แล้ว เพื่อเตรียมพร้อมสำหรับ Python 3.0 เราได้เริ่มเพิ่ม: จาก __future__ นำเข้า unicode_literals ลงใน.pyไฟล์ของเรา(เมื่อเราแก้ไข) ฉันสงสัยว่ามีใครทำสิ่งนี้อยู่หรือไม่และพบว่ามี gotcha ที่ไม่ชัดเจน (อาจใช้เวลาในการแก้ไขจุดบกพร่อง)

7
ฉันจะลบอักขระที่ไม่ใช่ ASCII แต่เว้นช่วงเวลาและช่องว่างโดยใช้ Python ได้อย่างไร
ฉันกำลังทำงานกับไฟล์. txt ฉันต้องการสตริงของข้อความจากไฟล์ที่ไม่มีอักขระที่ไม่ใช่ ASCII อย่างไรก็ตามฉันต้องการเว้นวรรคและจุด ตอนนี้ฉันกำลังลอกมันอยู่เหมือนกัน นี่คือรหัส: def onlyascii(char): if ord(char) < 48 or ord(char) > 127: return '' else: return char def get_my_string(file_path): f=open(file_path,'r') data=f.read() f.close() filtered_data=filter(onlyascii, data) filtered_data = filtered_data.lower() return filtered_data ฉันจะแก้ไข onlyascii () ให้เว้นช่องว่างและจุดได้อย่างไร? ฉันคิดว่ามันไม่ซับซ้อนเกินไป แต่ฉันคิดไม่ออก
100 python  text  unicode  filter  ascii 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.