사람들이 데이터를 복사하여 붙여 넣는 PHP 웹 앱/도구가 있습니다. 데이터는 결국 XML로 바뀌며, 일단 저장되면 특정 문자가 실제로 이상한 문자를 생성합니다. 나는 복사 - 붙여 넣기 전에 "â € ™"보였다 확실하지 않습니다. 그렇게 해석되었을 수도 있습니다. 방금 긴 "-"이었을 수도 있습니다. 어쨌든,이 모든 문자는 정말 이상합니다. 그들을 쉽게 뺄 수있는 방법이 있습니까?다음과 같이 홀수로 붙여 넣은 문자를 제거하는 방법은 무엇입니까?
2
A
답변
1
. Joel's article on Encoding 매우 깨우침을 찾을 수 있습니다. 당신은 문자 쌍 악센트 "A"또는 "A"로 시작 볼 때
그리고 짧은 대답에 대한
그냥 UTF-8<?php
$text = $entity['Entity']['title'];
echo 'Original : ', $text."<br />";
$enc = mb_detect_encoding($text, "UTF-8,ISO-8859-1");
echo 'Detected Encoding '.$enc."<br />";
echo 'Fixed Result: '.iconv($enc, "UTF-8", $text)."<br />";
?>
1
블랙리스트보다는 허용 목록에 쉽게 표시 될 수 있습니다. 허용되는 문자의 목록을 만들고 나머지 문자를 제거합니다. 쉽게 preg_replace
를 사용하여이 작업을 수행 할 수 있습니다 PHP는 8 비트 인코딩을 사용하지만 데이터가 대부분 가능성이 UTF-8로 작성되기 때문이다
$str = preg_replace($str, "/[A-Za-z0-9'-._\(\)/");
|
V
add more chars here
1
에서 그것을 인코딩 시도, 그것은 일반적으로 당신이를보고있는 의미 실제 인코딩이 iso-8859-1 인 캐릭터는 utf-8을 표시한다고 생각하는 소프트웨어에 의해 표시됩니다.
사람들이 XML을 인식 할 수없는 도구를 사용하여 XML 문서의 텍스트를 수정할 수있게하려는 경우 iso-8859-1로 인코딩 된 문자로 끝날 가능성이 있습니다. 파일의 시작 부분에있는 XML 선언이 존재하고 인코딩이 iso-8859-1이라고 말하면 아무런 문제가 없어야합니다. 그러나 XML 선언이 없거나 선언의 인코딩이 utf-8이면 손상된 데이터로 끝날 것입니다.
데이터를 복구하는 방법에 대해 질문했지만 데이터가 손상된 경우 복구보다는 항상 예방에 집중해야합니다.
관련 문제
- 1. 붙여 넣은 텍스트에서 ¶ (pilcrow) 제거
- 2. 방법은 다음과 같이
- 3. 방법은 다음과 같이
- 4. Word에서 붙여 넣은 문자열의 HTML 인코딩
- 5. Eclipse에서 붙여 넣은 코드를 컴파일하지 못했습니다.
- 6. 붙여 넣은 토큰을 매크로로 대문자화할 수 있습니까?
- 7. wxObjArray를 올바르게 포함하는 방법은 무엇입니까? 다음과 같이
- 8. 다음과 같이 GUID를 생성하는 방법은 무엇입니까?
- 9. 붙여 넣은 텍스트를 선택하는 vim 명령이 있습니까?
- 10. id와 title의 특수 문자를 제거하는 방법은 무엇입니까?
- 11. 영문자가 아닌 문자를 제거하는 방법은 무엇입니까?
- 12. sqlite3 데이터베이스에서 문자열에서 문자를 제거하는 방법은 무엇입니까?
- 13. JS의 문자열에서 불량 문자를 제거하는 방법은 무엇입니까?
- 14. 문자열에서 특정 문자를 제거하는 방법은 무엇입니까?
- 15. DB에서 16 진수 문자를 제거하는 방법은 무엇입니까?
- 16. html 페이지에서 이러한 문자를 제거하는 방법은 무엇입니까?
- 17. 다음과 같이 목록
- 18. 다음과 같이
- 19. 다음과 같이
- 20. MS Word에서 붙여 넣은 내용 정리하기
- 21. 붙여 넣은 Illustrator 에셋으로 Flash CS4 크롤링
- 22. 기대는 다음과 같이
- 23. Java JTextArea가 붙여 넣은 텍스트 전체를받지 못하는 이유는 무엇입니까?
- 24. 다음과 같이 조건부 서식 도움이
- 25. Emacs에 붙여 넣은 코드의 줄이기 방법 StackOverflow From
- 26. 다음과 같이 어떻게 pregreplace합니까?
- 27. 다음과 같이 asp.net
- 28. 레일 - 데이터베이스의 데이터에서 슬래시 문자를 제거하는 방법은 무엇입니까?
- 29. 는 다음과 같이
- 30. 효율적인 방법은 다음과 같이 embeds_many_recursively mongoid를 사용하여,
여러 답변을 받아 들일 수 있으면 좋겠어. 그냥 위의 대답을 사용하여 cakephp를 사용하므로 위생 라이브러리와 혼합되어 기본적으로 모든 데이터 beforeSave를 삭제 한 다음 unsanitize라는 함수를 만들었습니다. 사람들은 이상한 html 엔티티를 보지 못합니다. – Parris