痔になりやすい生活習慣とは?

いつもアドバイスをいただき本当にありがとうございます。
少し前に、下記のような質問をさせていただきました。

「あ」→「82A0」のようにshift-jisの文字コード取得したい
https://oshiete.goo.ne.jp/qa/10735000.html

shift-jisの文字コードを取得することはできたのですが、
一部の文字で正しく表示されない現象が起きてしいました。

例えば、このようになってしまいます。

「バ」 → 「83o」
「馬」 → 「94n」
「酸」 → 「8E_」
「新」 → 「90V」

他にもあるのですが、なぜこのような現象が起きてしまうのでしょうか?
解決策をご存じの方がいらっしゃいましたら、アドバイスをいただけないでしょうか?

A 回答 (3件)

url_encodeを使いませんでしたか?


url_encodeはエンコードする必要のない文字(半角英数字等)は16進数にせずそのまま返してしまいますので、そのような結果になります。
(「バ」のsjisでの16進コードは836Fですが、下位バイトの6Fは半角の「o」と同じコードですのでそのまま「o」という文字として返ります)

解決するにはurl_encodeではなくbin2hexを使って下さい。

print bin2hex("バ");

utf8からsjisへの変換も含めるなら

print bin2hex(mb_convert_encoding("バ","sjis","utf8"));

で、836f が返ります。
a〜fを大文字で表示させたいならstrtoupperで。

print strtoupper(bin2hex(mb_convert_encoding("バ","sjis","utf8")));
    • good
    • 1
この回答へのお礼

takanami1000様

アドバイス頂きありがとうございます。
思ったように動作するようになりました!

お礼日時:2018/09/22 10:32

いちおうかくにんです.



その結果は, 具体的にはどのようなスクリプトによって得られたのでしょうか?
    • good
    • 0
この回答へのお礼

Tacosan様

アドバイス頂きありがとうございます。
このようなスクリプトで取得していました。
print str_replace("%","",urlencode(mb_convert_encoding(”あ”,"SJIS","UTF8")))

bin2hexで無事取得することができました。ありがとうございます!

お礼日時:2018/09/22 10:34

shift-jisの文字コード表です参考にして下さい



参考URL:http://charset.7jp.net/sjis.html
    • good
    • 0
この回答へのお礼

ryuitimotomura様

アドバイス頂きありがとうございます。
下位4ビットの存在を知りませんでした・・・。

bin2hexで無事取得することができました。ありがとうございます!

お礼日時:2018/09/22 10:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q「あ」→「82A0」のようにshift-jisの文字コード取得したい

いつもアドバイスをいただきありがとうございます。

PHPを使ってshift-jisの文字コード取得をしたいのですが、
何か良い方法はないでしょうか?

bin2hexを使って16進数に変換することはできたのですが、
そこから先に進めないでいます。

「あ」なら「82A0」のように表示させることはできないのでしょうか?

下記のサイトのように動作することを目的としています。
https://www.hyuki.com/aozora/code.cgi

詳しい方がいらっしゃいましたらアドバイスを頂けないでしょうか?

Aベストアンサー

print str_replace("%","",urlencode("あ"));

もとがUTF8なら更に
print str_replace("%","",urlencode(mb_convert_encoding("あ","SJIS","UTF8")));

Qインタプリタ言語とスプリクト言語

インタプリタ言語とスプリクト言語の違いがいまいち分かりません。

分かる方よろしくお願いいたします。

Aベストアンサー

スクリプト言語
一般の利用者でも扱える程度に簡単で、短い台本(スクリプト)を書く目的で使われる様な、プログラミング言語の分類
技術者が使う様な、高機能ながら高難度な汎用言語と比べられる。

インタプリタ
ソースコードを、なんらかの翻訳作業をしながら実行する、処理系の分類
コンパイラ
ソースコードを、なんらかの翻訳作業をまとめて行い実行可能な形式を作り出す、処理系の分類

インタプリタ言語
とくにそのようなプログラミング言語の分類は無い
インタプリタ処理系で実行されることが一般的なプログラミング言語、ならばスクリプト言語が多く挙げられるが、
言語によって処理系が固定されることは通常あり得ない

Q構造体の勉強をしているのですが1と2は同じなのでしょうか?違うのでしょうか? もし違うならなぜ違うの

構造体の勉強をしているのですが1と2は同じなのでしょうか?違うのでしょうか?
もし違うならなぜ違うのか説明してください‼︎
よろしくお願いします。

1.typedef struct roll{メンバー};

2.typedef struct {メンバー}roll;

Aベストアンサー

「struct の直後に来るのが型でメンバーの後に来るのが新しい構造体の名前」の「型」と「構造体の名前」の違いってなんだろ.

さておき, これは typedef の仕様との関係がありますねぇ.

まず構造体の定義を完全に書くと
struct 構造体タグ メンバー定義 宣言子;
という形になります. ここで構造体タグは識別子, メンバー定義は
{ メンバーの宣言 }
という形で宣言子は変数やら配列やらポインタやらを表します. struct 以外は省略可能なのですが, 実際に意味を持つのは
・宣言子を省略する: 「struct 構造体タグ」で表される新しい構造体を定義する
・メンバー定義を省略する: 「struct 構造体タグ」で表される構造体型の変数などを宣言する
・構造体タグを省略する: 構造体タグがなんらかの理由で不要なときにはこの形式もあります
・メンバー定義と宣言子を省略する: 「struct 構造体タグ」で表される構造体型があることを宣言する
の 4つに限られます (全部省略しちゃダメなのは明らかだと思うけど). 再度確認しておくと, 「struct 構造体タグ」で 1つの型を表します.

質問文にある 2つの文を (typedef を除いて) 解釈するとそれぞれ
1. 宣言子を省略している. roll が構造体タグで, 「struct roll」という型を定義する
2. 構造体タグを省略している. roll は宣言子で, この場合は roll という変数を宣言する
となります. そして, *typedef がなければ*どちらも合法です (ただし, 当然ですが意味は違います).

で typedef の影響が出ます. typedef は
宣言子に含まれる識別子に対し, 「typedef がなければ与えられるはずの型」の別名として定義する
という働きをもちます. 例えば
int FOO, *Bar;
だと
・FOO は int型の変数
・Bar は int へのポインタ型の変数
なので, ここに typedef を付けた
typedef int FOO, *Bar;
では
・FOO は int型の別名
・Bar は int へのポインタ型の別名
となります. このように typedef では「別名を定義する」都合上, 宣言子はどうしても必須となります. 従って, 宣言子が省略された 1 はダメということになります.

「struct の直後に来るのが型でメンバーの後に来るのが新しい構造体の名前」の「型」と「構造体の名前」の違いってなんだろ.

さておき, これは typedef の仕様との関係がありますねぇ.

まず構造体の定義を完全に書くと
struct 構造体タグ メンバー定義 宣言子;
という形になります. ここで構造体タグは識別子, メンバー定義は
{ メンバーの宣言 }
という形で宣言子は変数やら配列やらポインタやらを表します. struct 以外は省略可能なのですが, 実際に意味を持つのは
・宣言子を省略する: 「struct 構造体タグ」...続きを読む

Qこのプログラムを教えてください。

このプログラムを教えてください。

Aベストアンサー

以下のPGで実現出来ます。
難解なところは特にありません。
初めて見る関数などの無いよう、敢えて四則演算を用いて解を導いています。
これを見て、数式の解を表現する1つの方法をぜひ身に付けて下さい。

/* 課題1 */
/* maru.c */

#include<stdio.h>
#include<string.h>
#define PI 3.14

int main() {

float d; /* 入力の直径 */
float e; /* 円周 */
float m; /* 面積 */
float s; /* 表面積 */
float v; /* 体積 */

printf("直径を入力してください[cm]: ");
scanf("%f", &d);

d = d / 2; /* 入力直径を半径に変換 */
d = d / 100; /* 入力値の単位変換 [cm]→[m] */

printf("(1)円の円周 [m] =%f\n", 2 * PI * d );
printf("(2)円の面積 [m2]=%f\n", PI * d * d );
printf("(3)球の表面積[m2]=%f\n", 4 * PI * d * d );
printf("(4)球の体積 [m3]=%f\n", (4.0 / 3.0) * PI * d * d * d);

return 0;
}

以下のPGで実現出来ます。
難解なところは特にありません。
初めて見る関数などの無いよう、敢えて四則演算を用いて解を導いています。
これを見て、数式の解を表現する1つの方法をぜひ身に付けて下さい。

/* 課題1 */
/* maru.c */

#include<stdio.h>
#include<string.h>
#define PI 3.14

int main() {

float d; /* 入力の直径 */
float e; /* 円周 */
float m; /* 面積 */
float s; /* 表面積 */
float v; /* 体積 */

printf("直径を入力してください[cm]: ");
scanf("%f", &d);

d = d / 2; /* ...続きを読む

QC言語でプログラミングを組みたいんですがcosの使い方がわかりません

x_i = cos((pi*(2i-1))/2N) (i=1,2,…,N)

という式で、N=5,9,17の時の値を求めたいのですが、うまくできません。

頑張ってN=5の式を作ってみたのですがうまくいきませんでした。
C言語、プログラミング初心者でわからないのでできるだけ丁寧に教えていただけると助かります。

自分で作ってみたプログラムを書いてみたので、どこが違うか、またどうすればいいかを教えていただきたいです。



#include <stdio.h>
#include <math.h>

#define iMAX 5

#define PI 3.1415926535


int main()
{

int i ;

int x[iMAX] ;

int n = ((PI * (2i-1) ) / 10) ;

double cos ( n ) ;



for (i = 1; i < 5; i++) {

x[i] = cos ( n );

}


for (i = 1; i<=5; i++) {

printf("x[%d] = %d\n",i,x[i]);

}


return 0 ;


}

x_i = cos((pi*(2i-1))/2N) (i=1,2,…,N)

という式で、N=5,9,17の時の値を求めたいのですが、うまくできません。

頑張ってN=5の式を作ってみたのですがうまくいきませんでした。
C言語、プログラミング初心者でわからないのでできるだけ丁寧に教えていただけると助かります。

自分で作ってみたプログラムを書いてみたので、どこが違うか、またどうすればいいかを教えていただきたいです。



#include <stdio.h>
#include <math.h>

#define iMAX 5

#define PI 3.1415926535


i...続きを読む

Aベストアンサー

cosの結果はdouble型です。
x_i = cos((pi*(2i-1))/2N) は、コード上、正確には
x_i = cos((pi*(2*i-1))/(2*N)) です。
N=5の場合、iを1からNまで変化させればOKです。
以下のようにしてください。
#include <stdio.h>
#include <math.h>
#define N 5
#define PI 3.1415926535
int main()
{

int i;
double x_i;
for (i = 1; i <= N; i++) {
x_i = cos((PI*(2*i-1))/(2*N));
printf("x[%d] = %f\n",i,x_i);
}
return 0;
}
-----------------------
以下、実行結果です。
x[1] = 0.951057
x[2] = 0.587785
x[3] = 0.000000
x[4] = -0.587785
x[5] = -0.951057

cosの結果はdouble型です。
x_i = cos((pi*(2i-1))/2N) は、コード上、正確には
x_i = cos((pi*(2*i-1))/(2*N)) です。
N=5の場合、iを1からNまで変化させればOKです。
以下のようにしてください。
#include <stdio.h>
#include <math.h>
#define N 5
#define PI 3.1415926535
int main()
{

int i;
double x_i;
for (i = 1; i <= N; i++) {
x_i = cos((PI*(2*i-1))/(2*N));
printf("x[%d] = %f\n",i,x_i);
}
return 0;
}
-----------------------
以下、実行結果です。
x[...続きを読む

Qこのプログラミングの問題がいくら考えてもわかりません。for文とif文を組み合わせて使うと言われたの

このプログラミングの問題がいくら考えてもわかりません。for文とif文を組み合わせて使うと言われたのですが、よろしければ教えてください

Aベストアンサー

No.1です、
念のための追加です。

日本語で「〇〇の値が××だったら、、、。そうでなかったら~。」といった表現で書かれたものが多くのプログラミング言語ではifを用いた処理になります。
同じく「〇〇の値が××になるまで、、、を繰り返す。」といった表現で書かれたものfor文やwhile文を用いた処理になります。

参考まで。

QC言語のものなのですが、具体的にこの文がなにをしているかについてわからないので説明をお願いいたします

C言語のものなのですが、具体的にこの文がなにをしているかについてわからないので説明をお願いいたします。

Aベストアンサー

画像じゃなく、テキストで貼ってほしいところですが…。
で、掲示されている範囲ではs_copy()とs_reverse()の仕様が不明です。
# まぁ、名前からだいたい想像は付きますけども。

ということで、下記のページをどうぞ。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13182921508

Qwin7でhttpdを動かしたい。

今般、win7で昔作ったhtmlを表示させてみたいと思い、
apache(httpd2.2.17)をインストールしました。

分からないなりに何とかインストールできたと思っています。
→It Works! が出たらokと在りましたが、
 確かに出ました。

ところがここから先のconfファイルの設定が色々読みましたが、
チンプンカンプンです。

そこで質問ですが、私の環境に合わせて基本的な部分だけで構いませんので、
具体的に教えて頂けたらと質問しました。
宜しくお願いします。



①apacheインストール先        d:\apache
②表示させたいhtml格納フォルダ  d:\midori
③表示させたいhtml           sample8.html

以上です。
足らない項目が在ればご指摘下さい。
いかんせん何も分からないので。

何とか最低限で良いので実現できたらと思っています。
宜しくお願いします。

Aベストアンサー

ボクはLinuxでしかapacheを使った事が無いのでWindows版apacheに関して
自分なりに調べた結果、参考になりそうなサイトを列挙します。

【Apache】Windows 7にApache2.2用のバーチャルホストの設定
参考URL:https://www.webdlab.com/local/local-apache-vhosts-2/

参考URL:http://www.itsenka.com/contents/development/environment/windows/apache/
     https://jp.globalsign.com/support/faq/176.html
     http://mizushima.ne.jp/Windows/HTTP/Apache/Apache-setting.php
     http://www5.plala.or.jp/vaio0630/apache/httpd_conf.htm
     http://juglas.co.jp/skill/newcomer/Apache2_0_59.html

ボクはLinuxでしかapacheを使った事が無いのでWindows版apacheに関して
自分なりに調べた結果、参考になりそうなサイトを列挙します。

【Apache】Windows 7にApache2.2用のバーチャルホストの設定
参考URL:https://www.webdlab.com/local/local-apache-vhosts-2/

参考URL:http://www.itsenka.com/contents/development/environment/windows/apache/
     https://jp.globalsign.com/support/faq/176.html
     http://mizushima.ne.jp/Windows/HTTP/Apache/Apache-setting.php
     http://ww...続きを読む

QHTMLを独学で勉強中なんですが、箇条書きのOL+LIのあとに文章を入れると文章の頭に空白ができるの

HTMLを独学で勉強中なんですが、箇条書きのOL+LIのあとに文章を入れると文章の頭に空白ができるので無くすにはどう入れたら良いのですか?

Aベストアンサー

文章の頭とか、空白と言われても??
インデントの事?行間?
前回答者さんは、インデントの事ですが、もしかして上下の隙間の事かな?
その画像でも貼って説明すれば良いのに・・・


HTMLだけでは、デフォルトレイアウトの表示(レンダリング)をするので、
自由にレイアウトしたければ、HTMLだけではなく、CSSを覚える必要があります!

------------

HTMLの上部にある<head>内に、以下を入れてみましょう。(CSSの一例ですが)

<style type="text/css">
h1,h2,h3,h4,h5,h6,p,ol,ul,li{margin:0;padding:0;}
</style>


ソースが不明なので、この回答では、h1,h2,h3,h4,h5,h6,pを入れてみただけ。不要ならその要素を抜粋削除してください。

QC言語の課題がわかりません char型変数をa個、int型変数をb個、double型変数を4個使うと

C言語の課題がわかりません

char型変数をa個、int型変数をb個、double型変数を4個使うとき、全部で何バイトのメモリを使うか求めるプログラムを作成せよ。なおa,bは実行中にキーボードから入力すること、また各データ型もしくは各変数のバイト数を求める際にはsizeof演算子を使うこと。

という問題なのですが、言っている意味も分からなければどのようなプログラムを書けばよいのかもわかりません。おしえてください

Aベストアンサー

『標準入力から』が正しい表現なんでしょうけど、初学者向けだとキーボードからと書かれる…でしょう。>#3


>またキーボードで入力するということはscanfを使うということなのでしょうか

scanf()だけとは限りませんけどね。
fgets()で取り込んで、数字→数値変換するとかありますし。
が、学校とかの課題レベルならscanf()辺りが妥当でしょう。
ろくにエラー処理してなくても合格もらえるんじゃないでしょうかね。

>変数の内容ではなく個数と書いてある点がよくわからなくて…

サイズ(バイト数)の計算に、個々の変数の内容は関係ないからです。
int型の変数に0が格納されているときと10000が格納されているときでメモリ上のサイズが変動したりはしません。


人気Q&Aランキング