1時間ごとに更新!Amazon.co.jpで今売れている本トップ100   掲示板ランキング



掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.5565

UTF8コード文字列終端
投稿者---wis(2006/03/15 14:57:33)


いつもお世話になっております。
現在、SJISとUTF8の文字コードを相互変換する関数を
Cで作成したのですが、UTF8の文字列終端に関する明確な
定義が分からないので書き込まさせていただきました。

現在、UTF8文字列の終端を'\0'にして実装しておりますが
確証が持てず、困っております。

どなたか、UTF8コードの文字列終端子に関する、
信頼の置けるWEBサイトまたは技術的文章をご存知の方は
ご教授をお願い致します。



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:UTF8コード文字列終端 5566 YuO 2006/03/15 15:16:34


No.5566

Re:UTF8コード文字列終端
投稿者---YuO(2006/03/15 15:16:34)


>現在、UTF8文字列の終端を'\0'にして実装しておりますが
>確証が持てず、困っております。

そもそも,文字列が\0で終端するのはC言語のライブラリにおける仕様です。
そして,C言語のライブラリにおいて終端文字列はエンコーディングに依存しません。
# UTF-16等を8bit char単位で見る場合などを除く。



この投稿にコメントする

削除パスワード

No.5567

Re:UTF8コード文字列終端
投稿者---wis(2006/03/15 19:59:24)


>そもそも,文字列が\0で終端するのはC言語のライブラリにおける仕様です。
>そして,C言語のライブラリにおいて終端文字列はエンコーディングに依存しません。
># UTF-16等を8bit char単位で見る場合などを除く。

それはつまり、C言語上で使用している限りは
変換処理でSJIS→UTF16BE→UTF8という変換経路を通っても、
変換後(UTF8文字列)に'\0'の終端を入れることで
文字列として扱えるという認識で良いでしょうか?



この投稿にコメントする

削除パスワード

No.5568

Re:UTF8コード文字列終端
投稿者---YuO(2006/03/15 22:55:00)


>それはつまり、C言語上で使用している限りは
>変換処理でSJIS→UTF16BE→UTF8という変換経路を通っても、
>変換後(UTF8文字列)に'\0'の終端を入れることで
>文字列として扱えるという認識で良いでしょうか?

標準ライブラリは,\0を以て文字列の終端を認識します。
なので,strlenやstrcpyは\0を入れておけば働きます。

他のライブラリがどのようにして文字列を認識するかは,ライブラリに依存する事項です。



この投稿にコメントする

削除パスワード

No.5572

解決
投稿者---wis(2006/03/16 11:44:44)


>標準ライブラリは,\0を以て文字列の終端を認識します。
>なので,strlenやstrcpyは\0を入れておけば働きます。
>
>他のライブラリがどのようにして文字列を認識するかは,ライブラリに依存する事項です。

今回は環境があまり統一されているとはいえないので、
変換関数に変換後のサイズを取る引数を加え、
memcpyなどを使用するように実装しましたので、
解決とさせていただきます。
ありがとうございました。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ