コード例 #1
0
SgObject Sg_MakeNativeConsoleTranscoder()
{
  static SgObject trans = NULL;
  if (trans == NULL) {
    trans = Sg_MakeTranscoder(Sg_MakeUtf16Codec(UTF_16LE), 
			      Sg_NativeEol(), SG_REPLACE_ERROR);
  }
  return trans;
}
コード例 #2
0
/* from mosh */
static const wchar_t* utf32ToUtf16(SgString *path)
{
  int size = SG_STRING_SIZE(path);
  SgCodec *codec = Sg_MakeUtf16Codec(UTF_16LE);
  SgTranscoder *tcoder = Sg_MakeTranscoder(codec, LF, SG_REPLACE_ERROR);
  SgPort *out, *tout;
  SgBytePort bp;
  SgTranscodedPort tp;
  out = Sg_InitByteArrayOutputPort(&bp, sizeof(wchar_t) * (size + 1));
  tout = Sg_InitTranscodedPort(&tp, out, tcoder, SG_OUTPUT_PORT);
  Sg_TranscoderWrite(tcoder, tout, SG_STRING_VALUE(path),
		     SG_STRING_SIZE(path));
  Sg_TranscoderPutc(tcoder, tout, '\0');
  return (const wchar_t*)Sg_GetByteArrayFromBinaryPort(&bp);
}