2016-08-23 2 views
0

저작권 기호 (c)을 포함하는 텍스트 줄을 찾는 수락 테스트를 만들려고합니다. 시도해 본 결과 :저작권 기호를보기 위해 코드화 어설 션을 만드는 방법은 무엇입니까?

$I->see('© 2016 MyCompany, LLC'); 

어설 션과 함께 html 이스케이프 문자를 사용할 수 없습니다. 코드 표식을 만드는 방법에 대한 도움말은 저작권 기호를 참조하십시오?

+0

$ I-> ('© 2016 ********** Company, LLC'참조); – KevinE

답변

0

see 메서드는 디코딩 된 HTML 엔티티와 일치하므로 Sammitch가 권고 한대로 실제 문자를 사용해야합니다.

$I->seeInSource('© 2016 MyCompany, LLC');

업데이트 : 그것은 HTML에서와 같이

대안 방법은 seeInSource 방법을 사용하고 개체와 일치하는 것입니다 내가 편집 기록을 확인하고 당신이 실제 © 문자를 사용하는 것으로 나타납니다 원래 질문.

빠른 테스트를 수행했으며 $I->see('© 2016 MyCompany, LLC')은 ©와 ©과 일치하므로 잘 작동해야합니다. 테스트 파일이 UTF-8로 저장되고 웹 사이트가 UTF-8을 사용하는지 확인하십시오. 다른 문자 집합을 사용하는 경우 어설 션에서 문자 코드를 사용하십시오.

+0

고맙습니다. 이것은 많은 도움이되었습니다. – KevinE

1

저작권 기호는 대부분의 멀티 바이트 인코딩에서 공유되는 ASCII의 7 비트 안전 하위 집합에서 발생하지 않으므로 사용되는 인코딩에 따라 다양한 바이트 시퀀스로 표시됩니다. 예상 출력이 될 인코딩을 결정한 다음 일치시킬 어설 션 문자열을 조정해야합니다. 이 도움말과 같은 문자 바이트 시퀀스를 사용하여 또한

$I->see('\xa9 2016 MyCompany, LLC'); 

, 당신은 프로그램 사이의 복사/붙여 넣기 데이터의 문제를 방지 : ISO-8859-1 들어

$I->see('\xc2\xa9 2016 MyCompany, LLC'); // PHP<7 
$I->see('\u{a9} 2016 MyCompany, LLC'); // PHP>=7 

: UTF-8

다른 인코딩을 사용합니다. ISO-8859-1에서 유효하게 보이는 내용은 UTF-8 문서에 붙여 넣을 때 완전히 손상됩니다. 그 반대의 경우도 마찬가지입니다.

참고 : 저작권 기호가 확장-ASCII/윈도우 1252/ISO-8859-1 싱글 바이트 표현이 일치 [U + BF를 통해 U + 80] UTF-8 시퀀스의 좁은 창 내에서 발생 2 바이트 UTF-8 시퀀스의 두 번째 바이트 이는 UTF-8이 항상 "후행 바이트"의 처음 두 비트를 예약하기 때문에 항상 10인데, 첫 번째 니블 10XX가 만들어 지므로 0x80에서 0xBF가됩니다.

인코딩 불일치를 설명하려고 할 때 "쓰레기 바이트"와 관련하여 누군가와 최근에 상당히 오래간 논쟁이 있었기 때문에 이것을 추가 할 필요성을 느꼈습니다. UTF-8 인코딩에 대한 자세한 내용은 this article을 참조하십시오.