각 줄이 여러 줄의 주석을 나타낼 수있는 파일 집합이 파일에 있습니다. 원 개발자가 선택한 행 분리 기호는 필자가 누군가의 코멘트에 결코 나타나지 않을 것이라고 느꼈기 때문에 필 크로 (¶)였습니다. 나는 지금 이것을 데이터베이스에 넣고 더 전형적인 라인 구분자를 사용하기를 원한다. (하나는 어플리케이션 설치자에 의해 설정 될 수 있지만).다른 문자 인코딩을 사용하여 파일에서 문자열 처리 (ISO-8859-1 대 UTF-8)
일부 줄은 ISO-8859-1 인코딩 (16 진수 b6)을 사용하고 다른 일부는 UTF-8 인코딩 (16 진수 c2b6)을 사용합니다. 나는 현재하고있는 것보다 더 나은 지원을하는 이것을 처리하는 우아한 방법을 찾고있다.
이
는 지금까지 그것을 처리 한 방법이지만, 나는 오히려 더 우아한 해결책을 찾고 있어요 :// Due to the way the quote file is stored, line breaks can either be
// in 2-byte or 1-byte characters for the pilcrow. Since we're dealing
// with them on a unix system, it makes more sense to replace these
// funky characters with a newline character as is more standard.
//
// To do this, however, requires a bit of chicanery. We have to do
// 1-byte replacement, but with a 2-byte character.
//
// First, some constants:
define('PILCROW', '¶'); // standard two-byte pilcrow character
define('SHORT_PILCROW', chr(0XB6)); // the one-byte version used in the source data some places
define('NEEDLE', '/['.PILCROW.SHORT_PILCROW.']/'); // this is what is searched for
define('REPLACEMENT', $GLOBALS['linesep']);
function fix_line_breaks($quote)
{
$t0 = preg_replace(NEEDLE,REPLACEMENT,$quote); // convert either long or short pilcrow to a newline.
return $t0;
}
혼합 문자 세트에 대한 Yuck! 나는 당신을 위해 느낀다 :-( –
줄 바꿈을하고, ISO-8859-1 라인의 utf8_decode를 사용하여 UTF-8로 데이터베이스에 각 줄을 넣는 것이 어떨까요? 각 줄을 다른 레코드에 넣으면 새로운 구분 기호가 필요할 것 같습니다. –
@dystroy - 파일의 각 줄에 여러 줄 주석이 포함될 수 있습니다. 파일 자체의 각 줄은 데이터베이스에 저장됩니다. 출력시 혼합 된 인코딩을 처리하기 위해 입력이 깨끗한 상태로 유지되는지 확인하고 여러 줄을 유지해야합니다. 어려움은 어떤 줄이 어떤 구분 기호를 포함하는지 알려주지 못합니다. – tamouse