2-4 바이트 UTF-8 문자가 그룹에 유효한 이름인지 여부를 테스트하는 Jenkins의 Cucumber (Ruby) 테스트 스위트를 실행하려고합니다.
나는 여러 가지 해결책을 시도해 보았고 나와 관련된 문제를 찾으려고 며칠 동안 검색했습니다.
나를 괴롭히는 오류는 다음과 같습니다.
incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)
그룹을 생성하고있는 FreeBSD 시스템의 CLI에 ssh 명령을 보내려는 줄을 나타냅니다.
$mymachine.cli_ssh.exec!("config group create --name='#{group_name}'")
exec!()
명령 내 위치 :
command.force_encoding("UTF-8")
이 오류는 2-4 바이트 UTF-8 문자를 보낼 때만 발생합니다.
그룹 'abcd' 는 오류를 일으키지 않고 그룹 'ЯЯЯ' 는 오류를 발생시킵니다.
문제 :
내 로컬 Ubuntu 컴퓨터에서이 스크립트를 실행하면 내 지역의 다른 컴퓨터와 마찬가지로 완벽하게 작동합니다. (그래서 주어진 것보다 더 많은 코드를 제공 할 필요가 없다고 생각합니다)
이미 Jenkins 컴퓨터에서 로케일 시스템 변수와 /.bashrc 파일 내에서 en_US.UTF-8로 시스템 로케일을 설정하려고 시도했습니다. ASCII-8BIT로 설정된 인코딩 변수를 본 곳은 없습니다.
스크립트를 실행하기 전에 Jenkins 셸에서 시스템 로케일을 내보내려고했습니다.
이 문제를 해결하는 데 도움이 될 몇 가지 답변이나 지침이 필요합니다.
Jenkins 시스템의 모든 Ruby gem을 업데이트하여 문제가 해결되었습니다. Jenkins 머신이 실행중인 Ruby 버전과 기술적으로 호환되지만 특정 gem이 구식 일 가능성이 높으므로 UTF8이 아닌 Ruby 코드가 존재할 수 있습니다.
앞으로이 문제가 발생하면 Jenkins 시스템과 작업 시스템간에 모든 gem 및 ruby 버전이 일치하는지 확인하는 것이 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다