Mã ký tự HTML 8203 là gì?


127

Mã ký tự (HTML) là ​gì? Tôi đã tìm thấy nó trong một trong các tập lệnh jQuery của tôi và tự hỏi nó là gì ..

Cảm ơn.

Biên tập:

Đây là kịch bản mà nó đã có (nó đã được thêm vào cuối, được tìm thấy trong Fireorms)

<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script type="text/javascript">
var $jnyh = jQuery.noConflict();


$jnyh(function() {
    $jnyh("#title-nyh").click(function() {
      $jnyh(".show-hide-nyh").slideDown("slow");
    }, function() {        
      if(!$jnyh(this).data('pinned'))
        $jnyh(".show-hide-nyh").slideUp("slow");
    });
    $jnyh("#title-nyh").click(function() {
    $jnyh(this).parent().toggleClass("title-btm-brdr");
       $jnyh(this).toggleClass("chev-up-result");
      var pin = $jnyh(this).data('pinned');
      $jnyh(this).data('pinned', !pin);
      if(pin) $jnyh(".show-hide-nyh").slideUp("slow");      
    });
});​&#8203;
</script>

1
Tôi đã tìm thấy một bài viết ở đây giúp tôi: js loại bỏ không gian chiều rộng bằng không Unicode 8203 khỏi chuỗi
Yuchi

2
Hấp dẫn. Tôi chỉ tìm thấy nó được sử dụng để xáo trộn một URL imgur trong một email lừa đảo: ii & # 8203; m & # 8203; g & # 8203; u & # 8203; r & # 8203; ....
Lambart

Nó được sử dụng trên hướng dẫn MDN, ví dụ: nếu bạn muốn sao chép tên đối tượng javascript từ tiêu đề H1 (như developer.mozilla.org/en-US/docs/Web/API/NodeFilter ) thì ký tự này trong chuỗi "NodeFilter" giữa " e "và" F ", vì vậy nó sẽ thất bại trong kịch bản của bạn. Tôi không biết tại sao Mozilla sử dụng nó. Có lẽ cô ấy ghét chúng tôi: D
iiic

Câu trả lời:


158

Đó là ký tự Unicode 'ZERO WIDTH SPACE' (U + 200B) .

nhân vật này được thiết kế để kiểm soát ngắt dòng; nó không có chiều rộng, nhưng sự hiện diện của nó giữa hai ký tự không ngăn được khoảng cách chữ tăng lên trong sự biện minh

Theo mẫu mã đã cho, thực thể này hoàn toàn không cần thiết trong ngữ cảnh này. Nó phải được chèn vào một cách tình cờ, rất có thể là do trình soạn thảo lỗi cố gắng làm những việc thông minh với khoảng trắng hoặc tô sáng hoặc bộ xử lý sử dụng ngôn ngữ bàn phím trong đó ký tự này thường được sử dụng, chẳng hạn như tiếng Ả Rập.


3
Cảm ơn. Thật kỳ lạ khi nó kết thúc trong jQuery của tôi.
Kyle

1
@Kyle Tôi đã tìm thấy ký tự này trong các tệp CSS của mình và nó có xu hướng phá vỡ chúng để các trình duyệt không phân tích CSS của tôi đúng cách. Vì vậy, tôi sẽ không ngạc nhiên nếu nó có thể gây ra vấn đề trong các tập tin kịch bản.
AaronLS

1
"Nó phải được chèn bởi một số tai nạn" - nó còn được gọi là dấu thứ tự byte.
Jonathan Dickinson

8
@Jonathan: Nó chắc chắn không phải là một dấu thứ tự byte .
BalusC

3
@Jonathan: Không, không phải là BOM. Là đại diện trực quan (mis) của BOM.
BalusC

22

Nếu bạn muốn tìm kiếm các ký tự vô hình này trong trình chỉnh sửa của mình và hiển thị chúng, bạn có thể sử dụng Biểu thức chính quy tìm kiếm các ký tự không phải mã ascii. Hãy thử tìm kiếm [^\x00-\x7F]. Đã thử nghiệm trong IntelliJ IDEA.


2
chúng tôi không được phép bình luận chỉ để nói lời cảm ơn - nhưng điều này rất có giá trị. những người khác cần biết đây là giải pháp họ đang tìm kiếm khi cố gắng xóa văn bản khỏi các hệ thống kỳ quặc. Khi tôi nói kỳ quặc tôi có nghĩa là Microsoft 360 rác trang web miễn phí! Tôi rất tốt với các biểu thức thông thường có nhiều năm kinh nghiệm, nhưng nó không thực sự quan trọng khi bạn gặp phải điều gì đó mà bạn không biết cách nhắm mục tiêu. (tôi đã cố gắng làm việc với get_html_translation_table(HTML_ENTITIES)ord()nhưng vẫn không thể giành chiến thắng) này cuối cùng đã cho tôi xử lý tôi cần để di chuyển về phía trước! CẢM ƠN BẠN!!!
aequalsb

Một số giải thích thêm có thể được tìm thấy tại stackoverflow.com/questions/9868796/ . Vui mừng nó giúp bạn @aequalsb
Micros

3
Hoạt động với tìm kiếm của VSCode; hãy chắc chắn sử dụng chuyển đổi "Sử dụng tìm kiếm regex".
James Perih

7

Tôi hạ cánh ở đây với cùng một vấn đề, sau đó tự mình tìm ra nó. Nhân vật kỳ lạ này đã xuất hiện với HTML của tôi.

Vấn đề rất có thể là trình soạn thảo mã của bạn. Tôi sử dụng Espresso và đôi khi gặp phải những vấn đề như thế này.

Để sửa nó, chỉ cần làm nổi bật mã bị ảnh hưởng, sau đó vào menu và nhấp vào "chuyển đổi thành các thực thể số". Bạn sẽ thấy giá trị số của ký tự này xuất hiện; chỉ cần xóa nó và nó sẽ biến mất mãi mãi.


Tôi nghĩ rằng tôi cần thêm chức năng đó vào Aptana / Eclipse. Cảm ơn!
Kyle

3

ZERO WIDTH SPACE.

Tôi đã sử dụng nó làm nội dung cho các ô bảng "trống". Dù vậy, không biết nó đang làm gì trong một <script>thẻ.


3

Ký tự ZID WIDTH SPACE được chèn khi bạn sử dụng jQuery để thêm các phần tử bằng các hàm thao tác DOM như .b Before () và .after ()

Tôi đã gặp phải điều này khi thêm các khung hộp thoại phương thức ẩn ở cuối tài liệu của mình và sau đó thấy rằng ZERO WIDTH SPACE vặn bố cục xuống đó, thêm không gian không mong muốn.

Cách khắc phục nhanh là chèn nó trước phần chân trang, không phải sau nó. Dù sao nó cũng ẩn.

Tôi không thể tìm thấy bất cứ điều gì trong jQuery làm điều này:

https://github.com/jquery/jquery/blob/master/src/manipulation.js

Vì vậy, nó có thể là trình duyệt thêm nó.


2

Tôi có những nhân vật này xuất hiện trong các kịch bản mà tôi không mong muốn chúng. Tôi nhận thấy vì nó phá hỏng định dạng trực quan HTML / CSS của tôi: nó tạo ra một hộp văn bản mới.

Khá chắc chắn một trình soạn thảo lỗi đang thêm chúng ... Tôi nghi ngờ Komodo Edit cho Mac, trong trường hợp của tôi.


Tôi nghi ngờ điều đó. Hiển thị trong IE trên PC của tôi khi tôi nhìn vào .html()một div đại diện cho một hộp văn bản trong SP 2013. Tôi tin rằng đó là do hành vi của ứng dụng web hiển thị dữ liệu. Trong trường hợp của tôi, độ dài là 1, đối với tôi, khi nó phải là 0. Đó là do nhân vật này.
vapcguy

2

Nếu bạn đang nhìn thấy những thứ này trong một nguồn, hãy lưu ý rằng đó có thể là ai đó đang cố gắng lấy tài liệu văn bản vân tay để tiết lộ ai đang rò rỉ thông tin. Nó cũng có thể là một nỗ lực để bỏ qua bộ lọc thư rác bằng cách làm cho thông tin trông giống nhau khác nhau ở mức độ từng byte.

Xem bài viết của tôi về giảm thiểu dấu vân tay nếu bạn muốn tìm hiểu thêm.


0

Nó đang hiển thị một số ký tự lạ (â €) cho đến khi tôi đặt bộ ký tự thành UTF-8 trong phần đầu của tệp html

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

hoặc cho HTML5:

<meta charset="UTF-8">

Bây giờ nó trong suốt nhưng vẫn hiển thị trong html khi tôi sử dụng trình kiểm tra.

Xóa tất cả các tập lệnh khỏi trang cũng không xóa nó.

Tôi đã thử nghiệm nó cho chrome và IE.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.