저는 현재 Jenkins와 UTF8 문제를 맺고 있습니다. 우리 프로젝트는 PHP로 구축되었으며 서버 우분투 서버로 사용합니다.PHP Hudson/Jenkins 인코딩 문제
이제 인코딩이 제대로 작동하지 않는 문제가 있습니다. 다른 환경에서는 모든 것이 작동하지만 젠킨스 서버 만 실패합니다.
테스트하려면 unittest에서 몇 가지 테스트 출력을 만들었습니다. 이것은 내가 실행하고 출력을 읽을 수 있습니다. 이 스크립트 및 응답입니다 :
<?php
$str = 'téëst';
var_dump(
array(
mb_http_input(),
mb_http_output(),
mb_detect_order(),
utf8_decode($str),
utf8_decode(utf8_decode($str)),
utf8_encode($str),
utf8_encode(utf8_encode($str)),
$str,
mb_detect_encoding($str)
)
);
?>
이 우리의 실제 환경/스테이징 환경과 개발 환경 :
array(9) {
[0] =>
bool(false)
[1] =>
string(4) "pass"
[2] =>
array(2) {
[0] =>
string(5) "ASCII"
[1] =>
string(5) "UTF-8"
}
[3] =>
string(5) "t��st"
[4] =>
string(5) "t??st"
[5] =>
string(11) "téëst"
[6] =>
string(19) "téëst"
[7] =>
string(7) "téëst"
[8] =>
string(5) "UTF-8"
}
당신이 볼 수 있듯이, 변환하지 않고, 드 보통의 문자열을 사용할 수 있습니다. 그러나 이제 Jenkins 환경에서는 개발 환경과 동일한 컴퓨터에서 실행됩니다. 모든 환경에서 작동합니다.
이
그것의 결과입니다[exec] array(9) {
[exec] [0] =>
[exec] bool(false)
[exec] [1] =>
[exec] string(4) "pass"
[exec] [2] =>
[exec] array(2) {
[exec] [0] =>
[exec] string(5) "ASCII"
[exec] [1] =>
[exec] string(5) "UTF-8"
[exec] }
[exec] [3] =>
[exec] string(5) "t??st"
[exec] [4] =>
[exec] string(5) "t??st"
[exec] [5] =>
[exec] string(11) "t????????st"
[exec] [6] =>
[exec] string(19) "t????????????????st"
[exec] [7] =>
[exec] string(7) "t????st"
[exec] [8] =>
[exec] string(5) "UTF-8"
[exec] }
위와 같이 모든 인코딩 옵션은 일반 문자열, 실패합니다.
는 이미 예에 의해, 다른 일을 시도 : pom.xml 파일에
- 변화는 UTF-8 인코딩을 파일.
- 변화에게로 JAVA_ARGS : JAVA_ARGS = "- Dfile.encoding = UTF8"
- 하는 JAVA_TOOL_OPTIONS의 = 추가 "- - Dfile.encoding = UTF8을"
- 이 JENKINS_TOOL_OPTIONS = 추가 "Dfile.encoding = UTF8을"
- 추가 JENKINS_ARGS = "- Dfile.encoding = UTF8 ...."
옵션이 작동하지 않습니다. 나는 또한 jenkins 사용자로 로그인 한 테스트를 실행 해 자신의 작업 영역인지 여부를 확인했습니다.
누군가 나를 좋은 방향으로 도울 수 있습니까? 이것 만이 우리와 CI 개발 사이에 있습니다.
미리 감사드립니다.
파일이 제대로 인코딩되었는지 확인하십시오. (첫 번째 소스 코드의 출처 인 파일). – Seti
IDE 인코딩에서 볼 수있는 모든 파일에서 : UTF-8, inca -L none filename.php 일 때, 7 비트 ASCII 문자를 얻습니다. –