Làm thế nào để bạn xử lý dấu ngoặc kép trong html?
Chúng tôi đang trong quá trình nâng cấp lên San Diego, nhận thấy rằng các dấu ngoặc kép (") được sử dụng trong các biến mục danh mục của chúng tôi (văn bản trợ giúp và hướng dẫn) đang hiển thị mã html " thay vì " Đây có phải là sự cố SD không? Hiển thị thay vì Cảm ơn Chuỗi trích dẫn kép bắt đầu đơn giản, sau đó trở nên phức tạp hơn một chút so với chuỗi trích dẫn đơn. Với chuỗi trích dẫn kép, bạn có thể sử dụng dấu gạch chéo ngược để thêm một số ký tự đặc biệt vào chuỗi của mình. Chương 3 sẽ đề cập đến cách tương tác giữa chuỗi trích dẫn kép và biến Chuỗi trích dẫn kép cơ bản là một chuỗi các ký tự được bao quanh bởi dấu ngoặc kép. Nếu bạn cần sử dụng dấu ngoặc kép bên trong chuỗi, bạn có thể sử dụng ký tự dấu gạch chéo ngược Chữ này tương tự như chữ bạn đã thấy. Chỉ là các trích dẫn là khác nhau. Một nghĩa đen khác sử dụng dấu ngoặc kép bên trong chuỗi được trích dẫn kép "David said, \"It is fun to learn Perl.\"" Lưu ý cách sử dụng dấu gạch chéo ngược ở dòng thứ hai để thoát khỏi các ký tự trích dẫn kép. Và trích dẫn đơn có thể được sử dụng mà không có dấu gạch chéo ngược Một điểm khác biệt chính giữa chuỗi trích dẫn kép và trích dẫn đơn là chuỗi trích dẫn kép có một số trình tự thoát đặc biệt có thể được sử dụng. Chuỗi thoát biểu thị các ký tự không dễ nhập bằng bàn phím hoặc khó nhìn thấy bên trong cửa sổ soạn thảo. Sau đây là tất cả các chuỗi thoát mà Perl hiểu được đưa ra trong Bảng 2. 1 ban 2. 1. Perl Escape SequencesEscape SequencesDescription or Character Lưu ý Trong chương tiếp theo, chúng ta sẽ thấy lý do tại sao bạn có thể cần sử dụng dấu gạch chéo ngược khi sử dụng các ký tự $ và @ Các ví dụ sau bảng sẽ minh họa một số trong số họ "\udave \umarshall is \x35\x years old." Nghĩa đen này đại diện cho những điều sau đây. Dave Marshall 35 tuổi
"The kettle was \Uhot\E!" Nghĩa đen này đại diện cho những điều sau đây. Ấm đun nước rất HẤP DẪN. Một ví dụ cuối cùng print "Bill of Goods Bread:\t\$34.45\n"; print "Fruit:\t"; print "\$45.00\n"; print "\t======\n"; print "\t\$79.45\n"; Trên thực tế, ví dụ này không quá khó, nhưng nó liên quan đến việc xem xét nhiều hơn một nghĩa đen cùng một lúc và đã mất vài trang kể từ ví dụ nâng cao cuối cùng của chúng tôi. Hãy xem chuỗi thoát của Chương trình này sử dụng hai phương pháp để ngắt dòng
Tôi khuyên bạn nên sử dụng ký tự Thận trọng Nếu bạn là lập trình viên C/C++, tài liệu này không mới đối với bạn. Tuy nhiên, chuỗi Perl không giống với chuỗi C/C++ vì chúng không có ký tự NULL kết thúc. Nếu bạn đang nghĩ đến việc chuyển đổi các chương trình C/C++ sang Perl, hãy cẩn thận sửa đổi bất kỳ mã nào dựa trên ký tự NULL để kết thúc một chuỗi Nếu bạn đang trực tiếp tạo HTML, SGML và XML, có lẽ bằng cách sử dụng trình soạn thảo văn bản hoặc viết chương trình, cách tiếp cận an toàn nhất là sử dụng “tham chiếu ký tự số thập phân” để cuộn các ký tự trích dẫn đơn và kép (các dấu này được gọi là “dấu ngoặc kép thông minh . Nói cách khác, đối với dấu ngoặc kép trái và phải, hãy sử dụng “ và ” - và đối với dấu ngoặc đơn trái và phải (và dấu nháy đơn), hãy sử dụng ‘ và ’ - và bạn sẽ rất vui vì đã làm như vậy. Cách tiếp cận này tuân thủ tất cả các tiêu chuẩn quốc tế và về cơ bản hoạt động ở mọi nơi Đây là một bảng hiển thị những gì tôi muốn nói Để hiển thị Trong HTML, SGML hoặc XML, hãy sử dụng Hiển thị trên hệ thống của bạn dưới dạng Dấu ngoặc kép bên trái““Dấu ngoặc kép bên phải””Dấu ngoặc kép bên trái‘‘Dấu ngoặc kép bên phải (bao gồm cả sở hữu từ và từ rút gọn trong tiếng Anh)''Bằng cách này, văn bản của bạn sẽ trông đẹp mắt trên rất nhiều trình duyệt và người xem, đồng thời bạn có thể dễ dàng cắt và dán các phần dữ liệu giữa các tài liệu HTML, SGML và XML (cho phép bạn tự động truy vấn và tạo tài liệu mới từ tài liệu hiện có Nếu bạn không muốn làm điều này trực tiếp, hãy sử dụng các công cụ sẽ làm điều đó cho bạn. Nếu bạn đang sử dụng các tệp văn bản ASCII đơn giản, SmartyPants có thể làm việc này cho bạn Cách thay thế tốt nhất là sử dụng UTF-8. UTF-8 thật tuyệt vời, nhưng các bộ ký tự khác vẫn đang được sử dụng và có thể gây ra sự cố Có nhiều lợi thế cho khuyến nghị cụ thể này. Đây là các mã hóa chính thức, tiêu chuẩn, trung lập với nhà cung cấp cho các ký tự này theo cả Unicode và ISO-10646, vì vậy bạn không cần lo lắng về việc chúng không hoạt động trong tương lai. Chúng cũng hoạt động trên XML, HTML và SGML, đơn giản hóa việc trích xuất dữ liệu - các lựa chọn thay thế như tham chiếu thực thể ký tự được đặt tên không dễ dàng hoạt động trên XML và HTML (đặc biệt). Các hệ thống có thể hiển thị các dấu ngoặc kép (với phông chữ hiện tại) sẽ làm như vậy và thực tế không có ngoại lệ sẽ quay trở lại các ký tự trung tính (dọc) một cách duyên dáng nếu chúng không thể - ngay cả khi chúng là một trình duyệt hơi cũ. Tôi đã thử nghiệm phương pháp này trên một số phiên bản Internet Explorer, Netscape (4 phiên bản cũ. 5 và 6. X), Mozilla (0. 9. 9 và 1. 0) và lynx (trình duyệt văn bản), trên nhiều hệ thống khác nhau (Windows, Linux, Sun Solaris). Một vấn đề nhỏ là trên một số hệ thống cửa sổ X cũ hơn với phông chữ cũ, dấu ngoặc đơn bên trái có thể được ánh xạ tới một ký tự là ký tự có góc cạnh cho dấu ngoặc đơn bên phải - nhưng nó trông không tệ, các lựa chọn thay thế trông Không sử dụng các lựa chọn thay thế khác nhau
Bây giờ, tại sao đây là một vấn đề? . Thật không may, các nhà thiết kế ban đầu của bộ ký tự ASCII đã không xác định một phương pháp tiêu chuẩn để xác định dấu ngoặc kép cong chính xác, vì vậy máy tính đã gặp sự cố với việc trao đổi dấu ngoặc kép đúng cách kể từ đó “Dấu ngoặc kép ASCII và Unicode” của Markus Kuhn mô tả tốt vấn đề chung. Anh tóm tắt thế này Vui lòng không sử dụng dấu huyền ASCII (0x60) làm dấu ngoặc kép bên trái cùng với dấu nháy đơn ASCII (0x27) làm dấu ngoặc kép bên phải tương ứng. Mặt khác, văn bản của bạn sẽ xuất hiện khá lạ với hầu hết các phông chữ hiện đại (e. g. , trên hệ thống Windows và Mac). Chỉ các phông chữ Hệ thống X Window cũ và một số thiết bị đầu cuối video cũ hiển thị ASCII 0x60/0x27 dưới dạng dấu ngoặc kép trái và phải, trong khi hầu hết các hệ thống hiện đại đều tuân theo các tiêu chuẩn ISO và Unicode thay thế. Nếu bạn chỉ có thể sử dụng các ký tự máy đánh chữ của ASCII, thì hãy sử dụng ký tự dấu nháy đơn (0x27) làm cả dấu ngoặc kép trái và phải. Nếu bạn có thể sử dụng các ký tự Unicode, các dấu ngoặc kép định hướng đẹp có sẵn ở dạng ký tự U+2018 và U+2019Có một trang kiểm tra thú vị để kiểm tra một số ký tự. W3C có một trang về mã hóa ký tự Thật không may, Kuhn không mô tả cụ thể cách giải quyết vấn đề trong HTML, XML và SGML, đó là lý do tại sao tôi viết trang này Nếu bạn tò mò, đây là các trang văn bản tôi đã sử dụng để kiểm tra sự cố trên nhiều loại máy Lưu ý rằng phương pháp này có nghĩa là nếu bạn đang cố gắng tạo văn bản ASCII đơn giản từ HTML, SGML hoặc XML, thì bạn sẽ cần dịch các dấu ngoặc kép thành dấu ngoặc kép thẳng. Nhưng điều này nói chung là đúng - nếu bạn bắt đầu với bộ ký tự phong phú hơn (chẳng hạn như HTML, SGML hoặc XML khi sử dụng tham chiếu ký tự số) và phải chuyển sang bộ ký tự kém hơn, thì bạn nên biết rằng một số ký tự sẽ cần được . Có nhiều nhân vật khác mà bạn phải xử lý, vì vậy đây là bước bạn sẽ phải làm. Sau khi tôi viết trang này, tôi thấy rằng những người khác cũng đi đến kết luận tương tự (vì những lý do tương tự). Ví dụ Peter K. Sheerin's Rắc rối với EM 'n EN đề xuất cùng một giải pháp, vì nhiều lý do giống nhau (mặc dù anh ấy không lưu ý đến các vấn đề với SGML và XML, những thứ mà tôi nghĩ cũng quan trọng). Anh ấy cũng thảo luận về việc sử dụng hợp lý dấu gạch ngang em (—), được sử dụng để biểu thị sự ngắt quãng đột ngột trong suy nghĩ, dấu gạch ngang en, (–), được sử dụng để biểu thị phạm vi hoặc mối liên hệ giữa các sự vật và số nguyên tố duy nhất (′ . Một lần nữa, giải pháp là sử dụng tham chiếu ký tự số thập phân Lưu ý rằng W3C khuyến nghị chỉ sử dụng các lần thoát đó như một ngoại lệ. Họ đề xuất sử dụng mã hóa dựa trên Unicode (UTF-8, UTF-16 hoặc UTF-32) và đối với XML sử dụng UTF-8 hoặc UTF-16. Vấn đề là chúng ta vẫn đang trong giai đoạn chuyển tiếp khi không phải tất cả các công cụ đều xử lý chúng tốt như vậy và đề xuất được đưa ra ở đây sẽ LUÔN có hiệu quả (bây giờ và trong tương lai) Nếu bạn muốn thông số kỹ thuật chi tiết về một số điều này, đây là một vài gợi ý. đây là Microsoft Windows Codepage 1252 (Windows Latin 1), cũng như Microsoft Windows Codepage 1253 (còn nhiều nữa). Đã có bản tóm tắt trang mã PalmOS. Có thể quan trọng hơn, đây là một số tài liệu ánh xạ cho biết cách chuyển đổi từ một số mã hóa ký tự này thành Unicode/ISO 10646. Microsoft Windows 1252 sang Unicode, MacOS Roman sang Unicode và đây là bộ ánh xạ từ các bảng mã khác nhau sang Unicode/ISO 10646 Tôi cung cấp công cụ trích dẫn phần mềm nguồn mở/phần mềm tự do (OSS/FS), công cụ này sử dụng các phương pháp phỏng đoán để cố gắng sửa các dấu ngoặc kép trong HTML, XML hoặc SGML (nó đủ thông minh để để nguyên các trích dẫn khi được sử dụng trong các thẻ). Nó miễn phí, vì vậy hãy thoải mái sử dụng nó (nó yêu cầu hệ thống giống Unix hoặc Cygwin trên Windows) Chương trình demoroniser sửa nhiều dấu chấm câu không tương thích của Microsoft để chúng tuân thủ các tiêu chuẩn, nhưng thật không may, phiên bản cuối cùng tôi thấy (xuất bản tháng 1 năm 1998) chỉ chuyển đổi dấu ngoặc kép của Microsoft thành dấu ngoặc kép ASCII thẳng thay vì triển khai phương pháp được mô tả tại đây. Kết quả trình hủy điều chỉnh ít nhất trông đẹp hơn và có khả năng tương tác hơn là không làm gì cả, nhưng chúng không tốt bằng phương pháp được đề xuất ở đây. Điều này có lẽ hợp lý; . Công cụ trích dẫn của tôi thực hiện công việc dịch các dấu ngoặc kép tốt hơn; Trình soạn thảo, trình chỉnh sửa HTML trong Mozilla và Netscape 6 (và phiên bản mới hơn), thường sẽ chỉnh sửa chính xác các tệp bao gồm các trích dẫn cuộn tròn được xác định theo cách này. Nói cách khác, nếu tệp có chúng và bạn chỉnh sửa tệp, chúng sẽ ổn thôi. Tuy nhiên, nếu bạn đặt giá trị Loại nội dung trong tệp HTML, hãy đảm bảo sử dụng cài đặt như ascii hoặc iso-8859-1. Đây là một ví dụ về các mã HTML bạn nên đặt, nếu bạn chọn đặt Loại nội dung (thường là một ý tưởng hay) Nếu bạn đặt một số bộ ký tự khác có thể đại diện trực tiếp cho các ký tự trích dẫn, chẳng hạn như utf-8, thì Trình soạn thảo sẽ tự động chuyển đổi bất kỳ tham chiếu ký tự số nào sang bộ ký tự đó. Điều này là hợp lý để Composer thực hiện, nhưng nó có thể gây rắc rối khi bạn cố gắng kết hợp các tệp sau này (khi đó bạn có thể phải sử dụng nhiều công cụ chuyển đổi khác nhau). Bạn cũng có thể muốn sử dụng menu Chỉnh sửa/Tùy chọn và chọn “Giữ lại định dạng nguồn gốc. ” Rất tiếc, tại thời điểm viết bài này, Trình soạn thảo không có cài đặt tùy chọn cho phép bạn tự động sử dụng dấu ngoặc kép khi nhấn nút trích dẫn thẳng (khả năng này đôi khi được gọi là “dấu ngoặc kép thông minh”) cũng như Chèn/Ký tự và Ký hiệu của nó . Tôi đã nhập một gợi ý để làm như vậy; . Do đó, hiện tại, để nhập các trích dẫn cuộn tròn trong Trình soạn thảo, bạn phải chuyển sang chế độ xem nguồn HTML; . Một cách khác là chỉ chỉnh sửa tệp bình thường, sau đó sử dụng các công cụ như công cụ trích dẫn của tôi để sửa mọi thứ sau khi chỉnh sửaPlucker, kể từ phiên bản 1. 2, xử lý các trích dẫn này một cách chính xác Cocoa của MacOS X hỗ trợ cuộn tròn các trích dẫn, cả nhập và hiển thị chúng, sử dụng các giá trị ký tự Unicode tiêu chuẩn được ủng hộ tại đây. Tuy nhiên, người dùng có thể không nhớ cách nhập dấu ngoặc kép. Andrew C. Stone cho biết cách tự động thêm dấu ngoặc kép vào hệ thống Văn bản của Cocoa Nếu bạn có văn bản hiện có trong một bộ ký tự, đặc biệt là văn bản không chuẩn như Windows’, bạn có thể sử dụng một trong nhiều công cụ để chuyển đổi văn bản đó sang một thứ khác. Các hệ thống giống Unix như GNU/Linux thường có iconv, cho phép bạn chuyển đổi giữa các bộ ký tự thành một bộ ký tự thống nhất (iconv đi kèm với thư viện GNU C). Thay đổi mọi thứ bằng cách sử dụng iconv thành một thứ gì đó tiêu chuẩn (như utf-8), sau đó chạy một chương trình đơn giản để thay đổi tất cả các ký tự không phải ASCII thành các tham chiếu ký tự số thập phân, sẽ là một cách rất tốt để biến văn bản ngẫu nhiên trong các bộ ký tự khác nhau thành một ký tự duy nhất Mã HTML cho trích dẫn kép là gì?Giới thiệu Thực thể ký tự nào được sử dụng cho dấu ngoặc kép trong HTML?Một số thực thể ký tự HTML hữu ích |