Hướng dẫn show special characters in php - hiển thị các ký tự đặc biệt trong php

Sau nhiều lần đánh đầu, tôi hiểu rõ hơn về vấn đề mà tôi muốn đăng cho bất kỳ ai khác có thể có vấn đề này.

Mặc dù bộ ký tự UTF-8 sẽ hiển thị các ký tự đặc biệt trên máy khách, mặt khác, máy chủ, có thể không quá hấp dẫn và sẽ in các ký tự đặc biệt như àè.

Để đảm bảo máy chủ của bạn sẽ in chính xác, sử dụng Charset ISO-8859-1:




    
        
        Untitled Document
    
    
        
    

Điều này sẽ in chính xác: àè


Chỉnh sửa (4 năm sau):

Bây giờ tôi có một chút hiểu biết tốt hơn một chút. Lý do hoạt động này là máy khách (trình duyệt) đang được nói, thông qua phản hồi header(), mong đợi một tệp văn bản/HTML ISO-8859-1. .

(Php 4, Php 5, Php 7, Php 8)

HTMLSPECIALCHARS - Chuyển đổi các ký tự đặc biệt thành các thực thể HTMLConvert special characters to HTML entities

Sự mô tả

htmlspecialchars (& nbsp; & nbsp; & nbsp; & nbsp; chuỗi ________ 12, & nbsp; & nbsp; bool à6 = à7): Chuỗi(
    string à2,
    int à3 = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string à4 = à5,
    bool à6 = à7
): string

Nếu chuỗi đầu vào được truyền vào chức năng này và tài liệu cuối cùng chia sẻ cùng một bộ ký tự, hàm này là đủ để chuẩn bị đầu vào để đưa vào hầu hết các bối cảnh của tài liệu HTML. Tuy nhiên, nếu đầu vào có thể biểu thị các ký tự không được mã hóa trong bộ ký tự tài liệu cuối cùng và bạn muốn giữ lại các ký tự đó (như các thực thể hoặc tên số), cả hàm này và htmlentity () (chỉ mã hóa Tương đương) có thể không đủ. Thay vào đó, bạn có thể phải sử dụng mb_encode_numericentity ().htmlentities() (which only encodes substrings that have named entity equivalents) may be insufficient. You may have to use mb_encode_numericentity() instead.

Thực hiện các bản dịch
Tính cáchThay thế
à8 (ampersand)à9
è0 (trích dẫn kép)è1, trừ khi è2 được đặtè2 is set
è3 (Trích dẫn đơn) è4 (đối với è5) hoặc è6 (đối với è7, è8 hoặc è9), nhưng chỉ khi 0 được đặtè5) or è6 (for è7, è8 or è9), but only when 0 is set
1 (ít hơn)2
3 (lớn hơn)4

Thông số

5

Chuỗi đang được chuyển đổi.string being converted.

6

Một bitmask của một hoặc nhiều cờ sau, chỉ định cách xử lý các trích dẫn, chuỗi đơn vị mã không hợp lệ và loại tài liệu được sử dụng. Mặc định là 7.

Có sẵn 6 hằng số
Tên liên tụcSự mô tả
9 htmlspecialchars (& nbsp; & nbsp; & nbsp; & nbsp; chuỗi ________ 12, & nbsp; & nbsp; bool à6 = à7): Chuỗi
0 Nếu chuỗi đầu vào được truyền vào chức năng này và tài liệu cuối cùng chia sẻ cùng một bộ ký tự, hàm này là đủ để chuẩn bị đầu vào để đưa vào hầu hết các bối cảnh của tài liệu HTML. Tuy nhiên, nếu đầu vào có thể biểu thị các ký tự không được mã hóa trong bộ ký tự tài liệu cuối cùng và bạn muốn giữ lại các ký tự đó (như các thực thể hoặc tên số), cả hàm này và htmlentity () (chỉ mã hóa Tương đương) có thể không đủ. Thay vào đó, bạn có thể phải sử dụng mb_encode_numericentity ().
è2 Thực hiện các bản dịch
2 Tính cách
3 Thay thế
4 à8 (ampersand)
è5 à9
è7 è0 (trích dẫn kép)
è8 è1, trừ khi è2 được đặt
è9 è3 (Trích dẫn đơn)
è4 (đối với è5) hoặc è6 (đối với è7, è8 hoặc è9), nhưng chỉ khi 0 được đặt

Một đối số tùy chọn xác định mã hóa được sử dụng khi chuyển đổi các ký tự.

Nếu bị bỏ qua, 9 mặc định với giá trị của tùy chọn cấu hình default_charset.

Mặc dù đối số này là tùy chọn về mặt kỹ thuật, bạn rất được khuyến khích chỉ định giá trị chính xác cho mã của bạn nếu tùy chọn cấu hình default_charset có thể được đặt không chính xác cho đầu vào đã cho.

Đối với các mục đích của chức năng này, các mã hóa ISO-8859-1, ISO-8859-12, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16 và ISO-8859-17 có hiệu quả tương đương, với điều kiện là 5 có giá trị đối với mã hóa Tất cả các mã hóa này.htmlspecialchars() occupy the same positions in all of these encodings.

Các bộ ký tự sau được hỗ trợ:

CharSets được hỗ trợ
CharsetBí danhSự mô tả
ISO-8859-1ISO8859-1 Tây Âu, Latin-1.
ISO-8859-5ISO8859-5 Ít hơn sử dụng ký tự cyrillic (Latin/Cyrillic).
ISO-8859-15ISO8859-15 Tây Âu, Latin-9. Thêm dấu hiệu đồng euro, các chữ cái Pháp và Phần Lan bị thiếu trong Latin-1 (ISO-8859-1).
UTF-8& nbsp; ASCII tương thích đa byte 8 bit unicode.
CP866IBM866, 866 Charset Cyrillic dành riêng cho DOS.
CP1251Windows-1251, Win-1251, 1251 Windows dành riêng cho Cyrillic Charset.
CP1252Windows-1252, 1252 Windows Charset cụ thể cho Tây Âu.
Koi8-rKoi8-Ru, Koi8r Tiếng Nga.
5 LỚN950 Trung Quốc truyền thống, chủ yếu được sử dụng ở Đài Loan.
GB2312936 Đơn giản hóa Trung Quốc, bộ nhân vật tiêu chuẩn quốc gia.
BIG5-HKSCS& nbsp; ASCII tương thích đa byte 8 bit unicode.
CP866IBM866, 866 Charset Cyrillic dành riêng cho DOS.
CP1251Windows-1251, Win-1251, 1251 Charset Cyrillic dành riêng cho DOS.
CP1251& nbsp; ASCII tương thích đa byte 8 bit unicode.
CP866& nbsp; ASCII tương thích đa byte 8 bit unicode.nl_langinfo() and setlocale()), in this order. Not recommended.

CP866: Any other character sets are not recognized. The default encoding will be used instead and a warning will be emitted.

IBM866, 866

Charset Cyrillic dành riêng cho DOS.

CP1251

Windows-1251, Win-1251, 1251string.

Windows dành riêng cho Cyrillic Charset.2 or 3 flags are set.

CP1252

Windows-1252, 1252Sự mô tả
8.1.0 ISO-8859-19 to 0 | 3 | è5.

ISO8859-1

Tây Âu, Latin-1.htmlspecialchars() example

header()1

ISO-8859-5

ISO8859-5:

Ít hơn sử dụng ký tự cyrillic (Latin/Cyrillic).htmlentities().

ISO8859-5:

Ít hơn sử dụng ký tự cyrillic (Latin/Cyrillic).

  • ISO-8859-159, 0, è2 is present, the default is è2.
  • ISO8859-159, 0, è2 is present, 0 takes the highest precedence, followed by 9.
  • Tây Âu, Latin-9. Thêm dấu hiệu đồng euro, các chữ cái Pháp và Phần Lan bị thiếu trong Latin-1 (ISO-8859-1).è5, è9, è8, è7 is present, the default is è5.
  • UTF-8è5, è9, è8, è7 is present, è9 takes the highest precedence, followed by è8, è7 and è5.
  • & nbsp;4, 2, 3 are present, 2 takes the highest precedence, followed by 3.

ASCII tương thích đa byte 8 bit unicode.

  • CP866
  • IBM866, 866
  • Charset Cyrillic dành riêng cho DOS.
  • CP1251
  • Windows-1251, Win-1251, 1251

Windows dành riêng cho Cyrillic Charset.

CP1252

à00

à01

à02

à03

à04

Windows-1252, 1252

CP1252

à05

à06

à07

à08

à09

Windows-1252, 1252

Windows Charset cụ thể cho Tây Âu.

à10

à11

à12

à13

à04

Koi8-r

Koi8-Ru, Koi8r

à15

à16

à17

à18

à19

à20

Tiếng Nga.

5 LỚN

à21

à22

à04

Trung Quốc truyền thống, chủ yếu được sử dụng ở Đài Loan.

GB2312

à24

Đơn giản hóa Trung Quốc, bộ nhân vật tiêu chuẩn quốc gia.

Windows Charset cụ thể cho Tây Âu.

à25

Koi8-r

Koi8-Ru, Koi8r

à26

à27

à28

à29

Koi8-r

Koi8-Ru, Koi8r

à30

à31

à32

à33

à34

à35

à36

à37

à04

Tiếng Nga.

5 LỚN

à39

à40

à41

à40

à43

à44

à04

Trung Quốc truyền thống, chủ yếu được sử dụng ở Đài Loan.

21 năm trước

à46

à47

à04

POV ¶

7 năm trước

à49

à50

à51

à52

à53

à04

Killian Leroux ¶

7 tháng trước

à55

à56

à57

à58

à59

à60

à04

Minder at ufive dot unibe dot ch ¶

9 năm trước

à62

à63

à64

à65

à66

à67

à68

à69

à70

à71

à72

à73

à74

à75

à76

à77

à04

php dot net tại orakio dot net ¶

14 năm trước

à79

à80

à81

à82

à83

à84

à85

à86

à04

năng lượng mặt trời ¶

15 năm trước

à88

à89

à90

à91

à92

à93

à04

Hỗ trợ tại PlayNext Dot Ru ¶

9 năm trước

à95

à96

à97

à98

à99

è00

è01

à04

php dot net tại orakio dot net ¶

14 năm trước

è03

è04

à04

năng lượng mặt trời ¶

15 năm trước

è06

Hỗ trợ tại PlayNext Dot Ru ¶

nachitox2000 [at] hotmail [dot] com ¶

è07

è08

è09

à04

12 năm trước

_____ tại Luukku dot com

è11

Làm cách nào để cho phép các ký tự đặc biệt trong PHP?

Mẹo: Để chuyển đổi các thực thể HTML đặc biệt trở lại các ký tự, hãy sử dụng hàm htmlspecialchars_decode () ...
& (ampersand) trở thành & amp ;.
"(trích dẫn kép) trở thành & quot ;.
'(Trích dẫn đơn) trở thành ' ;.
Làm cách nào để cho phép các ký tự đặc biệt trong PHP?
> (lớn hơn) trở thành & gt ;.

Sự khác biệt giữa các thực thể HTML () và htmlspecialchars () là gì?

Sự khác biệt giữa hàm htmlentity () và htmlspecialchars (): Sự khác biệt duy nhất giữa các hàm này là hàm htmlspecialchars () chuyển đổi các ký tự đặc biệt thành các thực thể HTML trong khi hàm htmlent () chuyển đổi tất cả các ký tự áp dụng thành các thực thể HTML.htmlspecialchars() function convert the special characters to HTML entities whereas htmlentities() function convert all applicable characters to HTML entities.

Tôi có nên sử dụng htmlspecialchars không?

Câu hỏi đầu tiên là: Khi nào nên sử dụng hàm htmlspecialchars?Bạn sử dụng htmlspecialchars mỗi khi bạn xuất nội dung trong HTML, do đó, nó được hiểu là nội dung chứ không phải HTML.Nếu bạn cho phép nội dung được coi là HTML, bạn vừa mở cửa cho các lỗi ở mức tối thiểu và tổng số vụ hack XSS ở mức tồi tệ nhất.EVERY time you output content within HTML, so it is interpreted as content and not HTML. If you allow content to be treated as HTML, you have just opened the door to bugs at a minimum, and total XSS hacks at worst.

Các thực thể HTML PHP là gì?

Định nghĩa và cách sử dụng.Hàm HTMLENTITY () chuyển đổi các ký tự thành các thực thể HTML.Mẹo: Để chuyển đổi các thực thể HTML trở lại các ký tự, hãy sử dụng hàm html_entity_decode ().Mẹo: Sử dụng hàm get_html_translation_table () để trả về bảng dịch được sử dụng bởi htmlentities ().