Mac OS X에서 Ruby 1.8.7을 사용하고 있습니다.Ruby에서 ASCII에서 EBCDIC로 변환하는 방법은 무엇입니까?
ASCII를 EBCDIC 인코딩으로 변환하여 기존 시스템과 통신하는 방법은 무엇입니까? jruby에 사용해야합니까?
Mac OS X에서 Ruby 1.8.7을 사용하고 있습니다.Ruby에서 ASCII에서 EBCDIC로 변환하는 방법은 무엇입니까?
ASCII를 EBCDIC 인코딩으로 변환하여 기존 시스템과 통신하는 방법은 무엇입니까? jruby에 사용해야합니까?
당신은 코드 세트로 EBCDIC-US를 지정 (2 + 루비) 루비 iconv library (2.0 이전 루비 버전) 또는 iconv gem을 사용해야합니다
이irb(main):001:0> require('iconv')
=> true
irb(main):002:0> x=Iconv.new('EBCDIC-US','ASCII')
=> #<Iconv:0x7fb4274d88d8>
irb(main):003:0> x.iconv("foo")
=> "\206\226\226"
당신은 업그레이드 할 수 있지만 반드시 그렇지 않습니다 문제를 풀다.
EBCDIC (IBM 고맙습니다!)의 여러 가지 맛이 있으므로 메인 프레임에서 사용하는 하위 세트를 식별해야합니다.
오랜 세월 전에 메인 프레임에서 프로그래밍 할 때 배웠던 한 가지 방법은 메인 프레임 sysops를 호출하고 두뇌를 선택하는 것이 었습니다. 그들은 하루 종일 다른 코드 세트에서 EBCDIC 로의 변환을 다루며 아마도 그것을 즉시 수행 할 수있는 도구를 가지고있을 것입니다.
JSON 또는 YAML을 구문 분석 할 수있는 항목이 있는지 확인할 수도 있습니다. 텍스트를 UTF-8로 변환하고 메인 프레임으로 보내면 변환기가 UTF-8에서 EBCDIC로 변환됩니다.
아멘 ("감사합니다!"). IBM의 EBCDIC 개발 경험과 경험이 없었다면, 우리는 현대의 7 비트 ASCII가 어느 정도인지 알 수 없었을 것입니다. 또한이 경험은 조직 초기부터 유니 코드 컨소시엄에 기여한 데 도움이되었습니다. 우리는 오늘날 훨씬 더 악화 될 가능성이 높습니다. 그러나 당신 말이 맞습니다. 관련 메인 프레임 사용자의 EBCDIC CCSID를 식별해야하고 필요하지 않은 경우에도 수행 할 수있는 좋은 방법이 필요할 수 있습니다. ("메인 프레임"이 아닐지라도, 그 아이디어는 여전히 관련이 있습니다.) 그렇지 않다면, UTF-8은 훌륭한 중개자입니다. – user2338816
파이썬에서는 "123".decode ("UTF-8") .encode ("IBM500") 또는 필요한 맛이 무엇이든간에 일반적으로 037, 500입니다. International은 DB2 유니 코드 지원 . 그럼 왜 이것이 Encoding에 있지 않습니까? 루비에 대한 별명 은요? – mckenzm
내 머리가 아파요! –
첫 번째 제안은 iconv가 EBCDIC를 지원하지 않는다는 점을 제외하면'iconv'를 사용하는 것입니다. 이것은 수년 동안 문제가되었습니다. : -/ –
@ 마크 왜 우르두 머리를 아프게합니까? – Surya