graphvizの使い方

このQ&Aのポイント
  • 初めてgraphivzをしているのですが、このプログラムを実行すると以下のエラーが表示されます。どう直したらよいでしょうか。
  • グラフ作成ツールのgraphvizを利用したい場合、プログラムの実行時にエラーが発生することがあります。
  • エラーメッセージには「Invalid 3-byte UTF8 found in input. Perhaps "-Gcharset=latin1" is needed?」と表示されます。
回答を見る
  • ベストアンサー

graphvizの使い方

初めてgraphivzをしているのですが、このプログラムを実行すると digraph sample3 { node [ fontname = "meiryo" shape = box ]; form [ label = "会員情報入力画面" ]; confirm [ label = "会員情報入力確認画面" ]; finish [ label = "会員情報入力完了画面" ]; form -> confirm [ dir = both ]; confirm -> finish; } 以下のようなエラーが表示されます。どう直したらよいでしょうか。 Error: Invalid 3-byte UTF8 found in input. Perhaps "-Gcharset=latin1" is needed?

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

「入力に不正な3バイトのUTF8がありました」 ってエラーなのですから、文字コードがUTF8かどうか確認しましょう。 Shift_JISやEUC-JPは対応していません。

関連するQ&A

  • graphvizの日本語文字化け対策

    こんにちは。 現在graphvizを日本語化できない状態が続いており、非常に困っております。 以下のようなサンプルをテキストエディタに入力して、UTF-8のBOMなしで保存しているのですが、添付画像のように文字化けしてしまいます。 digraph sample3 { node [ fontname = "MS 明朝" shape = box ]; form [ label = "会員情報入力画面" ]; confirm [ label = "会員情報入力確認画面" ]; finish [ label = "会員情報入力完了画面" ]; form -> confirm [ dir = both ]; confirm -> finish; } graphvizだけインストールしている状態で、ちゃんとフォント名も指定しているのに、何が足りないのでしょうか。 ご存知の方いらっしゃったら、どうか助けてください(T_T)。本当に・・・。 お願いいたします<(_ _)>。

  • graphvizの文字化け

    日本語を入力しても文字化けしてしまい、結局グラフで表しても文字化けしています。 digraph a4{ rankdir=LR; orientation=land; node[fontname="meiryo" shape=circle]; Java -> ��� [label = "517000",weight= "517000" ]; Java -> �_�E�����[�h [label = "183000000",weight= "183000000" ]; Java -> �Q�[�� [label = "7720000",weight= "7720000" ]; Java -> �z�� [label = "692000",weight= "692000" ]; Java -> �C���X�g�[�� [label = "2900000",weight= "2900000" ]; Java -> update [label = "73200000",weight= "73200000" ]; Java -> script [label = "548000000",weight= "548000000" ]; sun -> Java [label = "8790000",weight= "8790000" ]; Java -> API [label = "9320000",weight= "9320000" ]; eclipse -> Java [label = "14800000",weight= "14800000" ]; } これなんですが、fontnameで日本語の使えるフォントにはしているはずなんですが、どうしたら文字化けしないで表示できますでしょうか?

    • ベストアンサー
    • Java
  • PHP入力フォームについて

    現在入力フォームを作っています。 流れとしてはDBに入っている会員情報をフォーム上に呼び出して(各inputにはDB内の会員の情報が表示される)各会員が自分の情報を編集できるというフォームです。 ここで質問なのですが、会員の人が自分の入力内容を変更した際に入力漏れがあるとフォーム画面に戻るのですがその際に入力した内容が表示されるのではなくDB内のデータが表示されてしまいます。 これをDB内のデータではなく入力した内容にしたいのですが、どうしたらよろしいでしょうか? ソースは下記になります。 form.php <?php DB呼び出し・・・ $_SESSION['name'] = $row['name']; ・・・ ?> <?php echo $_SESSION['err_name']; ?> <input type="text" name="name" value="<?php echo $_SESSION['name']; ?>" /> confirm.php <?php $name = htmlspecialchars($_REQUEST['name']); if(!strlen($name)) { $_SESSION['err_name'] = '氏名を入力してください。'; $errFlag = true; } else { unset($_SESSION['err_name']); } エラーの時はform.phpに戻る ?> <?php echo $name; ?> としています。 とても省略していますが、お分かりの方がいらっしゃいましたら教えていただけると助かります。

    • 締切済み
    • PHP
  • 他ページの内容を出力するには

    PHPあまり詳しくないです。 会員登録ページなるものを作っています。 register.phpというページで入力した会員情報をconfirm.phpというページで最終確認させたいのですが、その際に入力した情報がconfirm.phpに反映されません。 regiser.php <?php $a = (!empty($_POST['name'])); $b = (!empty($_POST['email'])); $c = (!empty($_POST['password'])); $d = (!strlen($_POST['password']) < 4); if (isset($_POST['check'])) { if ($a && $b && $c && $d) { header('Location: confirm.php'); } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> </head> <body> <h3>新規登録</h3> <form method="POST" action=""> <div class="container"> <label for="name">ユーザ名(20文字以内)</label> <br /> <input type="text" id="name" name="name" maxlength="20" /> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['name'])) { print('※ユーザ名を入力してください'); } } ?> <br /><br /> <div class="container"> <label for="email">メールアドレス(100文字以内)</label> <br /> <input type="text" id="email" name="email" maxlength="100" /> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['email'])) { print('※メールアドレスを入力してください'); } } ?> <br /><br /> <div class="container"> <label for="password">パスワード(4文字以上20文字以内)</label> <br /> <input type="password" id="password" name="password" maxlength="20"/> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['password'])) { print('※パスワードを入力してください'); } elseif (strlen($_POST['password']) < 4) { print('※パスワードは4文字以上で入力してください'); } } ?> <br /><br /> <input type="submit" name="check" value="確認する" /> </form> </body> </html> confirm.php <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>確認画面</title> </head> <body> <h3>入力内容を確認してください</h3> <form method="POST" action=""> <br /><br /> <p>ユーザ名</p> <br /> <?php print htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'); ?> <br /> <p>メールアドレス</p> <?php print htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8'); ?> <br /> <p>パスワード</p> <?php print htmlspecialchars($_POST['password'], ENT_QUOTES, 'UTF-8'); ?> <br /><br /><br /> <?php print('この内容でよろしければ下の登録ボタンを押してください'); ?> <br /> <form method="POST" action="dbconnect.php"> <input type="submit" name="completion" value="登録する" /> </form> <br /><br /> <?php print('変更がある場合は下の戻るボタンを押してください'); ?> <br /> <form method="POST" action="register.php"> <input type="submit" value="戻る" /> </form> </body> </html> できればあまりこの形は変えたくありません…。 action部分をconfirm.phpに変えると、入力値が空だったりするエラー時にconfirm.phpに飛ばないようにする方法が分かりません。 回答よろしくお願いします。 色々と間違えていたのであげ直させていただきました。

    • 締切済み
    • PHP
  • 画面遷移ができない

    会員変更画面の変更の内容をやっているのですが 画面が移動せずエラー表記になってしまいます 現在あり使うコントローラー user_update_check user_update_complete user_update_input UserUpdateCustomerController entity,repository,util @Controller public class UserUpdateCustomerController { /** * 会員情報 */ @Autowired UserRepository userRepository; /** * セッション */ @Autowired HttpSession session; /** * 会員情報の変更入力画面表示処理 * * @param model Viewとの値受渡し * @param form 会員情報フォーム * @return "user/update/user_update_input" 会員情報 変更入力画面へ **/ @RequestMapping(path = "/user/update/input", method = RequestMethod.POST) public String updateInput(boolean backFlg, Model model, @ModelAttribute UserForm form) { // 戻るボタンかどうかを判定 if (!backFlg) { // 変更対象の会員情報を取得 User user = userRepository.getOne(form.getId()); UserBean userBean = new UserBean(); // Userエンティティの各フィールドの値をUserBeanにコピー BeanUtils.copyProperties(user, userBean); // 会員情報をViewに渡す model.addAttribute("user", userBean); } else { UserBean userBean = new UserBean(); // 入力値を会員情報にコピー BeanUtils.copyProperties(form, userBean); // 会員情報をViewに渡す model.addAttribute("user", userBean); } return "user/update/user_update_input"; } /** * 会員新規登録の入力エラー時 * * @return "user/update/user_update_input" 会員情報 変更入力画面へ */ @RequestMapping(path = "/user/update/input", method = RequestMethod.GET) public String updateInputError() { return "user/update/user_update_input"; } /** * 会員情報 変更確認処理 * * @param model Viewとの値受渡し * @param form 会員情報フォーム * @param result 入力チェック結果 * @return * 入力値エラーあり:"redirect:/user/update/input" 会員情報登録画面へ * 入力値エラーなし:"user/update/user_update_check" 会員情報 変更確認画面へ */ @RequestMapping(path = "/user/update/check", method = RequestMethod.POST) public String updateCheck( Model model, @Valid @ModelAttribute UserForm form, BindingResult result, RedirectAttributes redirectAttributes) { // 入力値にエラーがあった場合、会員情報 変更入力画面表示処理に戻る if (result.hasErrors()) { redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.userForm", result); redirectAttributes.addFlashAttribute("user", form); return "redirect:/user/update/input"; } return "user/update/user_update_check"; } /** * 会員情報変更完了処理 * * @param model Viewとの値受渡し * @param form 会員情報 * @param redirectAttributes リダイレクト後情報保持 * @return "user/update/user_update_complete" 会員情報 変更完了画面へ */ @RequestMapping(path = "/user/update/complete", method = RequestMethod.POST) public String updateComplete(Model model, @ModelAttribute UserForm form,RedirectAttributes redirectAttributes) { // 変更対象の会員情報を取得 User user = userRepository.findById(form.getId()).orElse(null); // 会員情報の削除フラグを取得 Integer deleteFlag = user.getDeleteFlag(); // 会員情報の登録日付を取得 Date insertDate = user.getInsertDate(); // 入力値をUserエンティティの各フィールドにコピー BeanUtils.copyProperties(form, user); // 削除フラグをセット user.setDeleteFlag(deleteFlag); // 登録日付をセット user.setInsertDate(insertDate); // 会員情報を保存 userRepository.save(user); // セッションからログインユーザーの情報を取得 UserBean userBean = (UserBean) session.getAttribute("user"); // 変更対象の会員が、ログインユーザと一致していた場合セッション情報を変更 if (user.getId().equals(userBean.getId())) { // Userエンティティの各フィールドの値をUserBeanにコピー BeanUtils.copyProperties(form, userBean); // 会員情報をViewに渡す session.setAttribute("user", userBean); } // 会員IDをViewに渡す redirectAttributes.addFlashAttribute("userId" , form.getId()); return "redirect:/user/update/complete"; } /** * 会員情報変更完了画面表示 * * @return "user/update/user_update_complete" 会員情報 変更完了画面へ */ @RequestMapping(path = "/user/update/complete", method = RequestMethod.GET) public String updateCompleteRedirect() { return "user/update/user_update_complete"; } }

  • form変数の初期化

    <br /><b>Notice</b>: Undefined index: your_name in <b>C:\xampp\htdocs\test\index.php</b> on line <b >83</b><br /> 入力画面で上記のエラーが解決しません。 どうすればいいでしょうか? 入力画面 <?php $_POST = array(); ?> <form method="post" action="./form_check.php"> <div class="element_wrap"> <label>氏名</label> <input type="text" name="your_name" value="<?php echo $_POST["your_name"]?>"> </div> <div class="element_wrap"> <label>メールアドレス</label> <input type="text" name="email" value=""> </div> <input type="submit" name="btn_confirm" value="入力内容を確認する"> </form> 確認画面 <?php $your_name = $_POST["your_name"]; ?> <form method="post" action="./test.php"> <div class="element_wrap"> <label>氏名</label> <p><?php echo $your_name; ?></p> </div> <div class="element_wrap"> <label>メールアドレス</label> <p><?php echo $_POST['email']; ?></p> </div> <input type="submit" name="btn_submit" value="送信"> </form> <form method="post" action="./index.php"> <!--<input type="button" name="btn_back" onclick="history.back()" value="戻る">--> <input type="submit" name="btn_back" value="戻る"> <input type="hidden" name="your_name" value="<?php echo $_POST['your_name']; ?>"> <input type="hidden" name="email" value="<?php echo $_POST['email']; ?>"> </form>

    • 締切済み
    • PHP
  • 現在PHPの勉強をしています。初心者のためご教授いただければと思います

    現在PHPの勉強をしています。初心者のためご教授いただければと思います。 メールフォームを作成しており、エラーチェックで困っています。 簡単に流れを説明しますとフォーム画面で入力をしてもらったら確認画面へと移行します。 ここでエラーがあった場合、confirm.phpにてエラーチェックをし、form.phpに戻り、エラーがなければ確認画面にて入力した、項目が表示されるようにしたいと思っています。 ソースは下記のとおりになります。 form.php ---------------------- */ <html> <body> <form action="confirm.php" method="post"> 名前:<input type="text" name="name" value="" /<?php echo $errmsg['name'] ;?><br> 内容:<textarea name="comment" rows="5" cols="40"></textarea><?php echo $errmsg['comment'] ;?><br> <input type="hidden" name="contact" value="form" /> <input type="submit" name="submit" value="確認" /> </form> </body> </html> confirm.php ---------------------- */ <?php $name = $_POST['name']; $comment = $_POST['comment']; if(isset ($_POST['contact'])) { $errmsg = array(); if(empty($name)){ $errmsg['name'] = '未入力'; } if(empty($comment)){ $errmsg['comment'] = '未入力'; } if (count($errmsg) != 0) { header("Location: index.php"); exit; } } ?> <html> <body> 名前:<?php echo $name; ?><br /> 内容:<?php echo $comment; ?><br /> </body> </html> としております。 if (count($errmsg) != 0) { header("Location: form.php"); exit; 上記のようにするとエラーチェックの表示がされません。 require(form.php);にするとform.phpが表示されるのですがURLを見るとconfirm.phpの状態になっております。 header("Location: form.php");を使用してのエラーチェックをしたいのですが、どのように記述したらよろしいのでしょうか? 上記の内容でどなたかご教授いただけないでしょうか? 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • cakePHPでFormを使用したDBへの登録

    cakePHP初心者です。 ブラウザで入力画面→確認画面→完了画面と遷移して、 DBに入力した値を登録する基本の動きをさせたいのですが、 Controllerの動きが分かりません。 Viewのファイルを 入力画面:entry.ctp 確認画面:confirm.ctp 完了画面:complete.ctp とします。 1.SampleControllerからentryページを表示 public function entry(){ } 2.etntry.ctpでFormを作成 <?php echo $this->Form->create('Sample', array('action' => 'confirm')) . PHP_EOL; ?> 3.SampleControllerでconfirmメソッドが呼ばれる public function confirm(){ if($this->request->is('post')){ データを画面にセット? } } 4.confirm.ctpが表示され、登録ボタンを押すと完了画面にFormを作成 <?php echo $this->Form->create('Sample', array('action' => 'complete')) . PHP_EOL; ?> 5.SampleControllerでcompleteメソッドが呼ばれる public function confirm(){ if($this->request->is('post')){ バリデーションチェック後、DBに登録? } } この流れでよいのでしょうか。 完了画面のcompleteでバリデーションチェックを行うことに違和感を感じています。 仮にconfirmで実施するとしても、書き方が良く分かりません。 <?php echo $this->Form->create('Sample', array('action' => 'confirm')) . PHP_EOL; ?> と書いたら、3の処理とかぶってしまいますよね・・・? 説明分かりにくくてすみません・・・。 ネットで調べつつやっていたのですが、一連の流れをすべて書いたサイトに見当たらず、 途方に暮れています。 どなたかご教示お願いします。

    • 締切済み
    • PHP
  • VB2010 ListView 使い方

    VB2010でListViewを使っています。かなり順調にプログラムが出来ているのですが、トラブルに遭遇しました。 Form1でDATAを入力して、Form2とForm3でそのDATAをListViewを使って表示しています。 そして、Form2のListViewをForm4に簡素化した雛形にして、ListViewを使って表示させています。 同様に、Form3のListViewをForm5に簡素化した雛形にして、ListViewを使って表示させています。 Form2からForm4は問題なく表示されますが、Form3からForm5はエラーとなります。 エラーは次のところで生じます。 ListView1.Items(2).SubItems.Add(Form3.ListView1.Items(1).SubItems(2)) エラーメッセージは次のようです。 「'1' の InvalidArgument=Value は 'index' に対して有効ではありません。」 また、次のようにコーディングしてみると、 ListView1.Items(2).SubItems.Add(Form3.Label2.Text) 「Labl2」と表示されるだけです。Label2の情報は表示されません。 単純にDATAを移すだけなのに、1つは出来て、もう1つは出来ないというのが分かりません。 どこに問題があるのでしょうか。 かなり悩んでいますが、解決策が見出せません。 ご教授いただける方が居られましたら、宜しくお願い申し上げます。

  • PHPでのエラーチェックについて

    PHP 初心者デス。よろしくお願いします。 勉強のため、PHPにてメールフォームを作成してます。 PHPでのエラーチェックについて教えていただきたいのですが、 よろしくお願いします。 メールフォーム自体は下記のような流れで作成しております。 ------------------------------------------- 入力フォーム(index.php) ↓(check.php エラーチェック用ファイルとおる) 確認画面表示(confirm.php) ↓(send.php 送信処理がかかれたファイルとおる) 完了画面表示(thanks.html) ------------------------------------------- エラーチェックはindex.phpで必須項目などが、未入力、空白があれば、 送信ボタンを押した際に、index.php自体の入力フォームの下などに 「未入力です」などのエラー表示をさせたいのですが、うまくいきません。 ご教授お願いいたします。 できればSESSIONなどを使用せず行いたいですが可能でしょうか? とりあえず自力でやって、うまくいかなかったのは以下内容です。 --------------------------------------------------- check.phpにエラーチェック用処理を記載しており、index.phpのフォームには <form method="post" action="check.php"> としてます。 ですが、これだともちろんエラー表示はchek.phpに表示されてしまい、 うまくindex.phpにエラー表示ができません。 またindex.phpに入力した内容をconfirm.phpにPOSTで渡せなかったりします。 index.phpにincludeなどでchek.phpを読み込ませて、 <form method="post" action="confirm.php"> としてみても、 うまくエラーチェックが動作しなかったり、 index.phpに入力した内容をconfirm.phpにPOSTで渡せなかったり、 苦労してます。 どうかご教授のほど、よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう