Dönüştürmeler
Aynı işlemdeki farklı tiplerde ya da CCSID 'lerle karakter, grafik ve UCS-2 değerlerini kullandığınızda, tüm değerlerin aynı tipte ve CCSID' ye sahip olmasını sağlamak için dönüştürmeler yapılmalıdır. Dönüştürmeler belirtik olarak, %CHAR, %UCS2 ya da %GRAFH ya da MOVE ya da MOVEL işleminin dönüştürmesi kullanılarak yapılabilir. Ancak, aşağıdaki senaryolarda derleyici, dönüştürmeleri gereken durumlarda örtük olarak yapar:
- Karşılaştırma
- Karşılaştırma, Unicode CCSID 'si kullanılarak yapılır. İşlenenlerin biri ya da her ikisi zaten o CCSID 'de değilse, işlenen bu CCSID' ye sahip geçici bir geçici çizelge değerine dönüştürülür.
- Devir
- Kaynak değer, hedef değerin tipine ve CCSID değerine çevrilir.
- Değer temelinde ve salt okunur başvuruya göre geçirilen parametreler
- Geçirilen parametre, prototip atanmış parametrenin tipine ve CCSID değerine dönüştürülür.
- Ardarda bağlama
- İşlenenlerden biri onaltılı bir hazır bilgi ise, diğer işlenenin de karakter tipinde olması gerekir; bu durumda, onaltılı hazır bilgi, diğer işlenenle aynı CCSID ' ye sahip olur. Tersi durumda, işlenenler Unicode CCSID ' ye dönüştürülür.
İşlenenler Unicode CCSID değerine dönüştürüldüğünde, kullanılacak Unicode CCSID ' yi tam olarak belirlemek için aşağıdaki kurallar kullanılır:
- İşlenenlerin tipi karakter tipiyse, işlenenler UTF-8olarak dönüştürülür.
- Tersi durumda, iki işlenenin tipi UCS-2ise, işlenenler modülün UCS-2 CCSID değerine dönüştürülür. Modül için UCS-2 CCSID değeri 13488 'e ayarlanır; denetim deyimindeki CCSID (*UCS2) anahtar sözcüğünü kullanarak bu değeri farklı bir CCSID ' ye ayarlayabilirsiniz.
- Tersi durumda, yalnızca bir işlenen tipi UCS-2ise, diğer işlenen UCS-2 işleneninin CCSID değerine dönüştürülür.
- Tersi durumda, UCS-2 işlenenlerinden biri modülün varsayılan UCS-2 CCSID 'ine sahipse, bu CCSID kullanılır.
- Tersi durumda, daha kısa tanımlanmış uzunluğa sahip işlenen, daha uzun işlenenin CCSID ' lerine dönüştürülür.
Uyarı:
- Bir işlenendeki bir karakter diğer işlenenin karakter kümesinde yoksa, bazı CCSID dönüştürmeleri tüm karakterleri dönüştüremeyebilir. Örneğin, bir Unicode işleneninden, CCSID 'si EBCDIC CCSID 'si gibi tek bir karakter kümesini gösteren bir işlenene veri atarsanız, Unicode işlenenindeki karakterlerin bazıları farklı bir karakter kümesinden olabilir. Bu durumda, hedef işlenene bir yerine koyma karakteri konacak. Varsayılan olarak, bu durum hata dışı durum kodu 50 ile sonuçlanır. Ancak, CCIDCVT (*EXCP) denetim anahtar sözcüğünü belirlerseniz, bu durum hata durumu 00452 ile sonuçlanır.
- CCSIDCVT (*LIST) denetim anahtar sözcüğünü kullanarak, modülde gerçekleştirilebilecek tüm CCSID dönüştürmelerinin listesini alabilirsiniz. Bu liste, yerine koyma karakterleriyle sonuçlanabilen CCSID dönüştürmelerine ilişkin uyarıları içerir.